文件中的Fscanf整数,而忽略周围的字符

时间:2018-10-08 05:20:30

标签: c scanf stdio

我正在尝试从格式如下的文本文件中读取一系列整数:

int1
int2
int3
int4
int99

即。每个整数前面都有相同的字符串,在这种情况下为'int'。

我尝试了以下代码,但是该程序仅打印第一个整数,然后结束。

FILE *fp = fopen("data.txt", "r");
int num;
while (fscanf(fp, "int%d", &num) == 1)
    printf("%d\n", num);

fclose(fp);

2 个答案:

答案 0 :(得分:0)

这是因为您没有使用换行符,并且在输入流中将其遗漏了。

只需如下更改您的fscanf

fscanf(fp, "int%d\n", &num) == 1
                 ^^-->read new line

答案 1 :(得分:0)

在%d之后添加一个空格即可。

  (fscanf(fp1,"int%d ", &num)==1)