[英]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;
是你的第一個問題。 getc
和getchar
返回int
s,而不是char
。 仔細閱讀手冊頁並將其更改為:
int c;
在寫入之后,您也沒有重置inFile
流。 像這樣的東西:
fseek(inFile, 0L, SEEK_SET);
在你開始閱讀該流之前。 (參見手冊頁。)
最后,您的主要簽名不是標准。 采用:
int main(void) { ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.