Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在c中从控制台中的文件读取数据_C - Fatal编程技术网

在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
的一次调用的参数?如果是这样,那么问题就很清楚了。您仍然需要循环,只需要正确地执行。(仅删除分号会有所帮助,但并不正确。)