使用C输入基本文件

时间:2012-11-17 16:40:49

标签: c file-io

所以我正在努力学习如何进行文件I / O,但我正在使用的书在教授如何从文件接收输入方面非常糟糕。下面是他们如何从文件接收输入的示例,但它不起作用。我一个字一个字地复制它,它应该遍历一个名单列表,直到它到达文件的末尾(或者他们在书中说的那样),但事实并非如此。事实上,如果我将while循环留在那里,它就不会打印任何内容。

#include <stdio.h>
#include <conio.h>
#define MAX 250
int main()
{

  char name[MAX]; 
  FILE*pRead;

  pRead=fopen("test.txt", "r");
  if (pRead==NULL)
    {
     printf("file cannot be opened");
    }else      


     printf("contents of test.txt");
     while(fgets(name,sizeof(name),pRead)!=NULL){
           {
            printf("%s\n",name);
            fscanf(pRead, "%s", name);
           }


             getch();
   }

即使在线,我看到的每个初学者教程也都有一些变化,但我似乎无法让它工作甚至一点点。

1 个答案:

答案 0 :(得分:1)

我相信你的数组太小,因此在你阅读fscanf时会覆盖导致奇怪行为的内存

如果你只想阅读文件 - 假设现在输入文件中每行有一个名称后跟换行符 - 只需使用fgets()读取文件。

#define MAXLINE 256

char name[MAXLINE]; 

while (fgets(name,sizeof(name),pRead)!=NULL)
{
  // do whatever
}