| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2319 人关注过本帖
标题:看一看getchar()起得作用?
只看楼主 加入收藏
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
 问题点数:0 回复次数:5 
看一看getchar()起得作用?
#include<stdio.h>
#include<stdlib.h>
void print()
{
printf("\n\t This is an example.\n\n You are welcome!\n\n");
}
main()
{
int flag=1;
char ch;
while(flag)
{
printf("\n Input 'F' or 'f' to start the program print,"
"\n other to exit:");
ch=getchar();
ch=toupper(ch);
getchar(); //去掉回车符.
if(ch=='F')
print();
else
flag=0;
}
getch();
}
哪位朋友帮忙解释一下:为什么getchar();起到去掉回车符的作用?谢谢!去掉以后好像没什么区别?
搜索更多相关主题的帖子: getchar flag print include 
2006-11-06 18:08
龙紫枫
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-11-3
收藏
得分:0 
应该就是注释里说的,去掉回车符
getchar ()函数是读入一个字符,并且是遇空格或空行或'\0'执行读取,而且还带缓冲和回显的。
在你第一次输入,哪怕确实是输入一个字符,但是,你输入以后,只有敲回车,getchar ()才会将字符从stdin流中读入,存到ch中。而你敲入的回车('\n')还处于缓存中,那么下次getchar ()读取时,会直接将该'\n'读入,那样,假如你直接输入"F"或者"f",这样的话,循环直接结束,导致你程序最后的那个getchar ();语句失去原有的作用..........
不好意思,好象说得有点饶,呵呵,我觉得自己说得没错,但是,你要是没看明白,那么说明我自己也没有真正理解
盼望高手再来给你解答一下
2006-11-06 19:59
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 

谢谢!一开始还没有看懂,不过后来终于想通了.哈哈!


在不断的拼搏与进取中,定能创造一片天地!
2006-11-08 17:41
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
书上说不是那么详细,这方面不是很懂,望高人指点一下能说出真正原理。

谁有强殖装甲第二部,可以Q我460054868
2006-11-08 17:49
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
收藏
得分:0 
我是这样认为的,不知道对不对,希望大家可以说说.
ch=getchar();
ch=toupper(ch);
getchar(); //去掉回车符.
if(ch=='F')
在输入一个字母时,传给ch,转换为大写.getchar()函数必须是以回车结束的.这样的话,就相当于输入了两个字符,所以必须吃掉后面按下的回车.但是这个程序好像没有什么影响.因为ch只接受一个字符,最先输入的.如果是scanf(),就可能出错?

在不断的拼搏与进取中,定能创造一片天地!
2006-11-09 10:10
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
[QUOTE]
ch=getchar(); //输入了两个字符,‘f’,和‘\n’
ch=toupper(ch); //只是将f,转换了值又复给了ch
getchar(); //去掉回车符.//getchar直接从缓冲区读取了‘\n’
if(ch=='F'[/QUOTE]

由于工作,N久都没来了!
2006-11-09 10:25
快速回复:看一看getchar()起得作用?
数据加载中...
 
   



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

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