以下是引用hzz063在2010-5-2 18:06:40的发言:
#include<stdio.h>
main()
{
FILE *fp,*fp2;char ch;
fp = fopen("1.txt","r");
fp2 = fopen("12.txt","w");
for(;(ch = getc(fp)!=EOF);)//应是(ch = getchar())!='0';注意优先级别。还有ch是字符类型,用返回EOF判断是个陷阱,
//他容不下EOF。你可以把ch定义为int.
putc(ch, fp2); //这里是fputc函数
}我改了一下:
#include<stdio.h>
main()
{
FILE *fp,*fp2;
char ch;
fp2 = fopen("12.txt","w");
for(;(ch = getchar())!='0';)
fputc(ch, fp2);
}
getchar()函数是从终端获取字符,这位同学违背了作者的本意,不是很喜欢
EOF 值是 -1 对吧,但是char类型也可以看成是1字节int类型(你可以将EOF赋给ch,再以%d格式输出,试试,然后以%c格式的话就不行),我在gcc编译器上可以通过。
另外,fputc与putc函数结构上基本相似,可以互换,不是吗?
至于那个括号是打少了吧。