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)
我正在尝试从格式如下的文本文件中读取一系列整数:
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)