| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 566 人关注过本帖
标题:一个文件程序的一些疑问
只看楼主 加入收藏
长肉的骷髅
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2010-7-22
结帖率:0
收藏
 问题点数:0 回复次数:2 
一个文件程序的一些疑问
#include <stdlib.h>
#include <stdio.h>
void    main(void)
{   FILE *fp;
        char ch,filename[10];
        scanf("%s",filename);
        if((fp=fopen(filename,"w"))==NULL) {
            printf("cannot open file\n");
            exit(0); /*终止程序*/}
      ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */
      ch=getchar( ); /* 接收输入的第一个字符 */
      while(ch!='#'){
                fputc(ch,fp);putchar(ch);
       ch=getchar(); }
      fclose(fp);
}
这个程序里 ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */
是什么意思?接受后输入的回车符有何用?我把它去掉就发现只是多空了一行。。。
另外,这个exit函数是用来终止程序的吧,后面是(0); 有的是些exit(1); 具体是什么含义呢,望各位大大为小弟释疑解惑
搜索更多相关主题的帖子: 文件 疑问 
2010-08-30 08:52
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
收藏
得分:0 
scanf()是不摒除回车符的,它以回车符结束,但是也会接受回车符,所以多了一个回车符。
ch=getchar();不是接受回车符,更贴切的说法是取出回车符。因为搁在那里迟早是个祸害(多空了一行等等)
取出来后,不做什么处理,
再用一个ch=getchar(); 把ch的值覆盖掉,那么原来那个回车符就会神秘失踪(如你所愿)。
等你用fputc()时,回车符没能赶上。(如程序所愿)

学C语言从底层开始,学编程从问题开始,一日学会C!!!
2010-08-30 09:09
长肉的骷髅
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2010-7-22
收藏
得分:0 
以下是引用do8do8do8在2010-8-30 09:09:33的发言:

scanf()是不摒除回车符的,它以回车符结束,但是也会接受回车符,所以多了一个回车符。
ch=getchar();不是接受回车符,更贴切的说法是取出回车符。因为搁在那里迟早是个祸害(多空了一行等等)
取出来后,不做什么处理,
再用一个ch=getchar(); 把ch的值覆盖掉,那么原来那个回车符就会神秘失踪(如你所愿)。
等你用fputc()时,回车符没能赶上。(如程序所愿)
哦哦,原来如此。那个exit又是什么呢,终止程序?如何使用?exit(0)和exit(1)??烦劳兄台指点
2010-08-30 09:14
快速回复:一个文件程序的一些疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.010892 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved