【发布时间】:2010-08-21 21:24:43
【问题描述】:
我有以下功能:
void writeResults(FILE* fp, FILE* fpw, Vector w, int size) {
Vector x;
while (1) {
char line[MAX_DIMENSION]; //max dimension is 200
if( (fgets(line,MAX_DIMENSION,fp)) == NULL) { //EOF
return;
}
else {
int i=0;
while (line[i]!='\0') {
printf("% d %c\n",i,line[i]); //print to check it
i++;
}
}
}
}
它读取的文件的行是:
1,1
2,2
但是,当我打印每个字符直到 '\0' 时,我得到以下输出:
0 1
1 ,
2 1
3
4
0 2
1 ,
2 2
3
4
有没有人知道为什么它会读取额外的 3 和 4 个字符? (文件中没有多余的空格)。
注意:文件打开方式如下:
FILE* fp = fopen(fileIn, "r");
if (fp == NULL) {
perror("Couldn't open File");
exit(errno);
}
【问题讨论】:
-
不要忘记选择对您最有帮助的答案 - 突出显示 LHS 上的白色勾号(复选标记)。对所有你有有用答案的问题都这样做。这是在 SO 上成为好公民的一部分。