我是文件处理的新手,当我尝试从键盘读取数据到文件并在屏幕上输出该文件的内容时,我无法通过下面的代码获得所需的结果
/* 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;
}
我得到类似这样的输出?
还有一种方法可以让我找到硬盘在这个文件的创建位置吗?
答案 0 :(得分:1)
首先,由于优先权,这是错误的。
while((c=getchar()!=EOF)) ^
您将继续存储角色与EOF
之间的比较,而不是存储角色。因此,您将连续存储一长串1
。
试试这个:
while((c=getchar())!=EOF)
^
第二个getc
和getchar
返回int
。 So ch
should be int
, not char
。使用char
可能意味着循环永远不会在某些系统上终止。
答案 1 :(得分:0)
该行:
fopen("input.txt","r");
显然是错的。似乎你想要:
fp = fopen("input.txt","r");
相反。