在C编程中读/写文本文件

时间:2011-12-18 09:19:15

标签: c file text

我需要在txt文件中写入内容并读取内容,然后在屏幕上打印。 下面是我编写的代码,它可以正确地创建内容并将其写入文件,但它无法从文件中读取并正确打印。

#include<stdio.h>
#include<stdlib.h>
main()
{
    char filename[20]={"c:\\test.txt"};
    FILE *inFile;
    char c;
    inFile=fopen(filename,"w+");

    if(inFile==NULL)
    {
        printf("An error occoured!");
        exit(1);
    }
    while((c=getchar())!=EOF)
        fputc(c,inFile);
    fputc('\0',inFile);

    while((c=fgetc(inFile))!=EOF)
        putchar(c);
}

有人会告诉我这个程序有什么问题,特别是最后两行。 提前致谢。

2 个答案:

答案 0 :(得分:7)

您需要添加

fseek(inFile, 0, SEEK_SET);

之前

while ((c=fgetc(inFile)) != EOF)
     putchar(c);

因为文件指针(不是用于内存分配的指针)已经移动到最后。要从文件中读取,您必须使用fseek功能将其置于最前面。

答案 1 :(得分:1)

您需要在写入文件之后和开始阅读之前回到文件的开头:

fseek(inFile, 0, SEEK_SET);