在下面的代码中,我试图存储文件中的所有字符(包括换行符)。 如果读取换行符,则变量“i”应递增并且“j”复位为0,但这不会发生。我已经确认通过从我的阵列打印到控制台来实际读取和存储换行符。
void scan_solved_nonogram(board *b) {
FILE *file = fopen("test.txt", "r");
int i = 0, j = 0;
while( ( b->symbol[i][j] = getc(file) ) != EOF ) {
j++;
if( b->symbol[i][j] == '\n' ) {
i++;
j = 0;
}
}
fclose(file);
b->size_i = i;
b->size_j = j;
}
答案 0 :(得分:8)
问题是在检查换行符之前增加j。
while( ( b->symbol[i][j] = getc(file) ) != EOF ) {
j++;// you increment j, so you need to check for newline at j-1
if( b->symbol[i][j-1] == '\n' ) {
i++;
j = 0;
}
}