从C中的文件读取和输出整数

时间:2014-11-08 09:30:14

标签: c file output scanf

我创建了一个内容为'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);
}

我做错了什么?

1 个答案:

答案 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
}