我试图从文本文件中填充数组。我正在使用fgetc,我的问题是处理文本文件中的换行符。我现在有了,
for(i = 0; i < rows; i++){
for(j = 0; j < columns; j++){
if((fgetc(fp) == '\n') || (fgetc(fp) == '\r')){
fgetc(fp);
array[i][j] = fgetc(fp);
else{
array[i][j] = fgetc(fp);
}
printf("i %d j %d char %c code %d\n", i, j, array[i][j], array[i][j]);
}
}
这个想法是,如果有一个换行符,我想在循环的同一个I,j位置前进文件指针,这样我就可以得到下一个字符。前两行的输出是混乱的,然后开始读取字符代码为-1的字符。我做错什么了吗?
最佳答案
对fgetc的每次调用都将推进文件指针。尝试调用一次:
int c=fgetc(fp);
然后测试c的值。如果你想的话就存储它,或者再循环一次。
关于c - C从文本文件填充数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18091692/