在c中从控制台中的文件读取数据
嗨,我有以下代码在c中从控制台中的文件读取数据,c,C,嗨,我有以下代码 #include <stdio.h> #include <stdlib.h> #include <process.h> #include <conio.h> int main() { FILE *fp; char c=' '; fp=fopen("E:\data.txt","w"); if(fp==NULL) { printf("Cannot open file");
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <conio.h>
int main()
{
FILE *fp;
char c=' ';
fp=fopen("E:\data.txt","w");
if(fp==NULL)
{
printf("Cannot open file");
exit(1);
}
printf("Write data & to stop press '.' :");
while(c!='.')
{
c=getche();
fputc(c,fp);
}
fclose(fp);
printf("\nContents Read:");
fp=fopen("E:\data.txt","r");
while(!feof(fp));
printf("%c",getc(fp));
}
输出不显示我输入的内容
请帮助我哪里出了问题。您的主要问题是:
while(!feof(fp));
后面的分号是循环的完整主体,后面是对printf的单个调用。但是,出于其他原因。您的主要问题是:
while(!feof(fp));
后面的分号是循环的完整主体,后面是对printf的单个调用。但是,由于其他原因。这里有打字错误
while(!feof(fp))代码>带您到文件末尾
所以只需删除代码>这里有输入错误
while(!feof(fp))代码>带您到文件末尾
所以只需删除代码>我已删除while(!feof(fp));但当我把输入的文本作为“writingdata”时,我得到的是“内容读作w”。请帮帮我。实际上读取的内容应该是“writingdata”。只删除分号,而不是整个while循环。非常抱歉,我没有注意到分号,但我已经进入文件位置并打开了文件,当我查看文件时,输入的数据不会显示。我删除了while(!feof(fp));但当我把输入的文本作为“writingdata”时,我得到的是“内容读作w”。请帮帮我。实际上读取的内容应该是“writingdata”。只删除分号,而不是整个while循环。非常抱歉,我没有注意到分号,但我已经进入文件位置并打开了文件,当我查看文件时,输入的数据不会显示。我删除了while(!feof(fp));但当我把输入的文本作为“writingdata”时,我得到的是“内容读作w”。实际上,读取的内容应该是“writingdata”。请帮帮我。您是否完全删除了循环,并将对fgetc
的一次调用作为对printf
的一次调用的参数?如果是这样,那么问题就很清楚了。您仍然需要循环,只需要正确地执行。(删除分号会有帮助,但不正确。)我已删除while(!feof(fp));但当我把输入的文本作为“writingdata”时,我得到的是“内容读作w”。实际上,读取的内容应该是“writingdata”。请帮帮我。您是否完全删除了循环,并将对fgetc
的一次调用作为对printf
的一次调用的参数?如果是这样,那么问题就很清楚了。您仍然需要循环,只需要正确地执行。(仅删除分号会有所帮助,但并不正确。)