这是代码,我想跳过最后两个字符串并读取第一个整数。
fp = fopen("test","r");
int i;
while (fscanf(fp,"%d %*s %*s",&i) > 0)
{
printf("%d\n",i);
}
这是文本文件
4 jane good
0 may day
5 july hello
程序只进入循环一次,并且只返回最后一行的数字。
我想知道发生了什么?
此代码为我生成正确的输出:
#include<stdio.h>
#include<stdlib.h>
int main(void) {
FILE* fp = fopen("test","r");
int i;
while (fscanf(fp,"%d %*s %*s",&i) > 0)
{
printf("%d\n",i);
}
fclose(fp);
return EXIT_SUCCESS;
}
输出:
4
0
5
我怀疑您在发布的本节之外的某个地方犯了错误。
更新:我还建议熟悉调试器,例如
gdb
。我个人通过逐步完成我的程序学到了很多 C 语言。