请教一个问题,好吗
#include <stdio.h>main()
{FILE * fp;
char ch,filename[20];
printf("输入原文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{printf("cannot open the file:\n");
exit(0);
}
ch=getchar(); / *此语句用于接收执行scanf时最后输入的回车符*/ 这是什么意思呢
ch=getchar();
while(ch!='#')
{fputc(ch,fp);
putchar(ch);
ch=getchar();
}
fclose(fp);
}
该程序是向文件中输出字符,直到输入的字符为#为止,请问只能向*.C这样文件写入数据吗,可以向文本文件写入字符吗?
[[it] 本帖最后由 yyow3193 于 2008-6-23 14:27 编辑 [/it]]
----------------解决方案--------------------------------------------------------
scanf("%s",filename);
看看这个!..
----------------解决方案--------------------------------------------------------
ch=getchar(); / *此语句用于接收执行scanf时最后输入的回车符*/ 这是什么意思呢?
___________________________
scanf()遇回车,结束读入,回车字符放回缓冲区;ch=getchar(); 读取此回车符并抛弃;
----------------解决方案--------------------------------------------------------
我再想一想
----------------解决方案--------------------------------------------------------
结束了就结束了呗,干嘛还要接收回车符,把它放入缓存呢,起个什么作用
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
...
[[it] 本帖最后由 yyow3193 于 2008-6-23 15:02 编辑 [/it]]
----------------解决方案--------------------------------------------------------
我刚试了一下,用getchar()读入回车,和不用getchar()唯一的区别是后面的在向文件里写数据的时候前面空了一行,为什么咧
----------------解决方案--------------------------------------------------------
[bo][un]かわい[/un] 在 2008-6-23 16:04 的发言:[/bo]
到这份上还不明白吗??
没接收的空行就写到了文件啊
到这份上还不明白吗??
没接收的空行就写到了文件啊
用getchar()接收了回车,为什么就不写入文件,而不用getchar()接收回车,为什么就写入了文件,而且空了一行????想不明白呀,,,
----------------解决方案--------------------------------------------------------
我连数据结构都没学,,算法还没有系统的学,
----------------解决方案--------------------------------------------------------