如果我有以下文本文件:
1 2 3 4 5 6 7 8 9 10 是的
11 12 13 14 15 16 17 18 19 20 是的
我必须遵循代码:
#include <stdio.h>
int main(){
int arr[5][10];
FILE* foo;
foo = fopen("help.txt", "r");
int i, j;
int temp;
while (i<5 && (fscanf(foo, "%d", &temp)) !=EOF ){
arr[i][0]= temp;
for (j=1; j<10; j++){
fscanf(foo, "%d", &temp);
arr[i][j]=temp;
}
i++;
}
for (i=0; i<2; i++){
for (j=0; j<10; j++)
printf("%d ", arr[i][j]);
printf("\n");
}
fclose(foo);
}
...当文本文件只有数字时它工作得非常好,但是当我将字符“是”添加到文本文件时,代码变得疯狂。我如何包括它们?请简单解释一下,因为我对此还很陌生。我会使用 fscanf(foo, %d%*c, &temp);??? 另外,如果有新行语句,我将如何处理?
非常感谢
编辑:我最初提供的 e 输入是
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20。
在这里,一切都正确打印出来。在 10 之后将单词 yes 添加到文本文件时,所有其他数字也是 10。本质上它不包含 11 12... 到 20。并打印出:1 2 3 4 5 6 7 8 9 10 10 10 10 10 10 10 10 10 10 10