标题:关于getchar()与getch()有点复杂
只看楼主
小牛
Rank: 1
等 级:新手上路
威 望:1
帖 子:434
专家分:8
注 册:2006-10-1
结帖率:81.48%
 问题点数:0 回复次数:2 
关于getchar()与getch()有点复杂
请大家看下面二个简单的程序:
#include<stdio.h>
void main()
{char ch;
while((ch=getchar())!='\n')
printf("*");
printf("%d",ch);
}
//如果这时\n换成\r则程序就无终止。
#include<stdio.h>
#include<conio.h>
void main()
{char ch;
while((ch=getch())!='\r')
printf("*");
printf("%d",ch);
}

如果这时\r换成\n则程序就无终止。
两个程序输入字符结束都以键入enter结束。

问题1:
怎样使用getchar()得到换行--'\r'字符。
问题2:
怎样使用getch()得到回车--'\n'字符。
问题3:
还有一点getch()得到字符在输入一个字符之后,
即打印出“*”,好像字符不经过缓冲区,直接
到内存的数据区中。而getchar()得到字符则不是。
为什么会这样。
搜索更多相关主题的帖子: getchar 
2006-10-25 19:07
ecbtnrt
Rank: 1
等 级:新手上路
威 望:1
帖 子:189
专家分:0
注 册:2006-4-16
得分:0 

'\n'为回车
'\r'为回车,将当前位置移到本行开头
使用情况不一样

getchar()得到一字符
getch()使输出时在此地停顿,输入任意字符继续


我为你痴,为你狂!
2006-10-25 21:21
小牛
Rank: 1
等 级:新手上路
威 望:1
帖 子:434
专家分:8
注 册:2006-10-1
得分:0 
不对。\n为换行,\r为回车。



本店经营各类国际品牌运动鞋,板鞋,休闲鞋,有李宁,nike,匹克,阿迪达斯。
2006-10-26 15:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-98720-1-1.html




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

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