当前位置: 代码迷 >> C语言 >> 请教一个问题,好吗
  详细解决方案

请教一个问题,好吗

热度:300   发布时间:2008-06-23 12:22:02.0
请教一个问题,好吗
#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]]
搜索更多相关的解决方案: include  cannot  file  

----------------解决方案--------------------------------------------------------
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()接收回车,为什么就写入了文件,而且空了一行????想不明白呀,,,
----------------解决方案--------------------------------------------------------
我连数据结构都没学,,算法还没有系统的学,
----------------解决方案--------------------------------------------------------
  相关解决方案