EDIT:
platform unix
type : ansi c
У меня есть данные в форме;
1 2 3 -1 2 -9 1 3 +
-1 2 -3 -4 -
*
целое число в диапазоне от -9 до 9
'+ - *' и показывает, что вы должны взять данные, которые лежатв следующей строке
данные являются символом двойного указателя
каждая строка должна храниться в массиве символов двойного указателя
example : data[0] :=> 1 2 3 -1 2 -9 1 3 +
more precisely : data[0][3] must store -1
когда я беру данные и сохраняю, я не могу достичьсохраните -3 (отрицательное целое число) в данных [i] [j], потому что '-' является символом, поэтому 3 не принимается данными [i] [j]
Что я должен сделать, чтобы решить эту проблему?
РЕДАКТИРОВАТЬ: МОЙ код;
size_t datalen = sizeof( char ) ;
data = ( char ** ) malloc( sizeof (char * ) )
for ( i = 0 ; ; ++i )
data[i] = (char * ) malloc ( datalen )
for ( j = 0 ; ; ++ j )
signed char ch;
if j != 0
datalen += 1
data[i] = ( char * ) realloc ( begin[i], datalen )
scanf ("%c ", &ch )
begin[i][j] = ch
if ch == OP ( op = + , - , * , / )
break
if strlen ( begin[i] ) == 1
break
РЕДАКТИРОВАТЬ: если вы посмотрите на таблицу ascii, вы поймете, почему я не использую scanf ("% d", & ch) http://www.asciitable.com/