Read integers from stdin and store in 2d array (C) -


i'm trying read text file containing integers via stdin , store values in 9x9 array (please note file must read via stdin , not arg)

this have:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h>   int main() {     int puzzle[9][9];     int i,j,count=0;       char value[81];      for( = 0; < 9; i++ ) {         for( j = 0; j < 9; j++ ) {           scanf("%c", &value[count]);           puzzle[i][j] = value[count] - '0';          count++;         }     } } 

but doesn't seem convert ascii characters scanf int, thought value[count] - '0' supposed do, end getting values this:

-16-16-160-16-160-16-161 

basically i'm trying whats described in thread, in c instead of c++:

how convert 2d char array 2d int array?

edit -

the input file looks (contains both white space , new lines):

   0  0  1  9  0  0  0  0  8             6  0  0  0  8  5  0  3  0         0  0  7  0  6  0  1  0  0         0  3  4  0  9  0  0  0  0         0  0  0  5  0  4  0  0  0         0  0  0  0  1  0  4  2  0         0  0  5  0  7  0  9  0  0    0  1  0  8  6  0  0  0  7    7  0  0  0  0  9  2  0  0         

the problem not conversion line puzzle[i][j] = value[count] - '0';. problem lies following scanf() statement, scanf("%c", &value[count]);. scanf reading first white space. use scanf(" %c", &value[count]); read input.


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -