簡體   English   中英

在C編程中讀/寫文本文件

[英]Read/Write text file in C programming

我需要在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);
}

有人會告訴我這個程序有什么問題,特別是最后兩行。 提前致謝。

你需要添加

fseek(inFile, 0, SEEK_SET);

之前

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

因為文件指針(不是用於內存分配的指針)已經移動到最后。 要從文件中讀取,您必須使用fseek功能將其帶到前面。

在寫入文件之后和開始閱讀之前,您需要回到文件的開頭:

fseek(inFile, 0, SEEK_SET);
char c;

是你的第一個問題。 getcgetchar返回int s,而不是char 仔細閱讀手冊頁並將其更改為:

int c;

在寫入之后,您也沒有重置inFile流。 像這樣的東西:

fseek(inFile, 0L, SEEK_SET);

在你開始閱讀該流之前。 (參見手冊頁。)

最后,您的主要簽名不是標准。 采用:

int main(void) { ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM