我创建了一个内容为'12 7 -14 3 -8 10'
的文件我想输出所有类型的整数。但是在编译并运行程序之后,我只获得了第一个数字'12'
这是我的代码:
#include <stdio.h>
main(){
FILE *f;
int x;
f=fopen("C:\\Users\\emachines\\Desktop\\ind\\in.txt", "r");
fscanf(f, "%d", &x);
printf("Numbers: %d", x);
fclose(f);
}
我做错了什么?
答案 0 :(得分:1)
使用fscanf
从文件中扫描一个整数并打印它。您需要一个循环来获取所有整数。fscanf
返回成功匹配的输入项数在您的情况下,fscanf
在成功扫描时返回1。所以只需从文件中读取整数,直到fscanf
像这样返回0:
#include <stdio.h>
int main() // Use int main
{
FILE *f;
int x;
f=fopen("C:\\Users\\emachines\\Desktop\\ind\\in.txt", "r");
if(f==NULL) //If file failed to open
{
printf("Opening the file failed.Exiting...");
return -1;
}
printf("Numbers are:");
while(fscanf(f, "%d", &x)==1)
printf("%d ", x);
fclose(f);
return(0); //main returns int
}