繁体   English   中英

使用getc从文件中读取时检查字符

[英]checking chars when reading from file with getc

在下面的代码中,我试图存储文件中的所有字符(包括换行符)。 如果读取换行符,则变量“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;

}

问题是在检查换行符之前增加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;
    }
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM