c中的文件处理没有产生所需的结果

时间:2012-02-07 12:48:48

标签: c

我是文件处理的新手,当我尝试从键盘读取数据到文件并在屏幕上输出该文件的内容时,我无法通过下面的代码获得所需的结果

/* get data from the keyboared till the end of file and write it to the 
file named "input" agian read the data from this file on to the screen*/

#include <stdio.h>

   int main()
   { 
     FILE *fp;
     char c;
     printf("enter the data from the keyboared\n");

     fp=fopen("input.txt","w");

     while((c=getchar()!=EOF))
     {
       putc(c,fp);
     }

     fclose(fp);

     printf("reading the data from the file named input\n");

     fopen("input.txt","r");

     while((c=getc(fp))!=EOF)
     {
       printf("%c",c);
     }

     fclose(fp);

     return 0;

  }

我得到类似这样的输出?

还有一种方法可以让我找到硬盘在这个文件的创建位置吗?

2 个答案:

答案 0 :(得分:1)

首先,由于优先权,这是错误的。

while((c=getchar()!=EOF))
                       ^

您将继续存储角色与EOF之间的比较,而不是存储角色。因此,您将连续存储一长串1

试试这个:

while((c=getchar())!=EOF)
                  ^

第二个getcgetchar返回intSo ch should be int, not char。使用char可能意味着循环永远不会在某些系统上终止。

答案 1 :(得分:0)

该行:

fopen("input.txt","r");

显然是错的。似乎你想要:

fp = fopen("input.txt","r");

相反。