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

Fscanf integers from file while ignoring surrounding characters

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

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);

这是因为您没有使用换行符,它被遗漏在输入流中。

只需如下更改您的 fscanf

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

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

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