0

嗨,我有以下代码

#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));
}

执行上述代码时,我有以下输出

输出:

Write data & to stop press '.' :writing data into the file.

Contents Read:

输出不显示我输入的内容。

请帮助我哪里出错了。

4

2 回答 2

4

您的主要问题在这里:

while(!feof(fp));

结尾的分号是完整的循环体,后面是对 printf 的一次调用。然而, 为什么“while (!feof (file))”总是错的呢? 其他原因。

于 2013-11-11T17:20:35.590 回答
1

这里有错别字。

while(!feof(fp));带您到文件末尾。

所以只需删除;.

于 2013-11-11T17:21:13.197 回答