请教一个关于getchar(),getche()和getch()函数的问题!

ASCII945 2006-03-20 04:27:02
请问以上这三个函数具体有什么区别?我知道getch()是从控制台读取一个字符但不回显,
但是我想大家能不能举几个具体的例子来说明一下!!!

还有一下这个程序
int main()
{
char choi;
/*getchar()*/ 问题1:为什么这个语句加入后只要输入Y然后就程序结束了??
choi=getchar();
while((choi=='Y')||(choi=='y')){
printf("Hello!\n");
getchar() //问题2:为什么问题1的getchar()不能加入而这里却一定要加入??
choi=getchar();};

return 0;
}
问题3:如果以上的getchar()改为getche()后只要一输入y就马上执行输出语句,
而改为getchar()却要输入后按回车才执行??

谢谢!!只要问题解决马上给分!!!
...全文
126 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ASCII945 2006-03-20
  • 打赏
  • 举报
回复
谢谢,明白了!
expert2000 2006-03-20
  • 打赏
  • 举报
回复
哦。是问题2对应你的问题1。
lclvcstudy 2006-03-20
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(int argc, char *argv[])
{
char ch;
printf("Please input getchar char:\n");
ch = getchar(); /*该函数知道按下回车键才返回,同时会将输入的字符和回车键回显出来,就是putchar会在下一行输出*/
putchar(ch);
printf("\nPlease input getch char:\n");
ch = getch(); /*输入的时候没有回显*/
putchar('*');
printf("\nPlease input getche char:\n");
ch = getche(); /*输入的时候有回显,但是没有回车输出,就是和putchar会在同一行
e可能表示echo,反复的意思,这样和网络中的就一致了*/
putchar(ch);
printf("\nHello, world\n");
system("PAUSE");
return 0;
}
expert2000 2006-03-20
  • 打赏
  • 举报
回复
上面问题1其实对应你的问题2 。你的问题2答案是,这里是接受键盘输入一个不是y或者Y的字符,以便跳出循环。
expert2000 2006-03-20
  • 打赏
  • 举报
回复
1)getchar()读入stdin中的一个字符,并且转换为无符号扩展的整形值。所以返回值是int
getche()从键盘读取一个字符并回显
getch()从键盘读取一个字符不回显
2)加入语句后,就是2次读取字符。第一次读取的是y,就是你加入的那个getchar()读取的。
第二次,choi=getchar();这个语句其实读取的是回车符。所以后面判断不正确,程序结束。
3)getchar()是从流中读取的,要读取到流结束符才返回。其余2个是从键盘一个一个直接读入的。
ASCII945 2006-03-20
  • 打赏
  • 举报
回复

自己re一个先!!!
资源下载链接为: https://pan.quark.cn/s/9e7ef05254f8 在C++编程中,getch()、getche()和getchar()是三种常见的字符输入函数,它们各自有不同的功能和使用场景,但很多初学者容易将它们混淆。接下来,我们就来详细探讨一下这三者的区别与联系。 首先来看getch()。这个函数的作用是从键盘获取一个字符,但不会将该字符显示在屏幕上。它主要用于暂停程序的执行,等待用户按下任意键后再继续运行。在C语言中,我们常常在程序末尾使用getch()来防止程序窗口快速关闭。不过在C++中,通常不需要手动添加getch()来实现这种效果,因为C++的程序运行结束后会自动暂停,并提示用户“press any key...”来按任意键退出。 再来看getche()。它和getch()的功能比较相似,也是从键盘获取一个字符,但与getch()不同的是,getche()会将获取到的字符显示在屏幕上。例如,当我们在程序中用getche()代替getch(),输入字符时,输入的字符会立即显示出来。比如输入abcde,屏幕上就会显示aabbccddee,这说明在执行ch=getche();这条语句时,输入的字符会被即时返回并显示在屏幕上。 最后是getchar()。它和前两者最大的区别在于输入来源。getchar()是从标准输入流中读取一个字符,而不是直接从键盘获取。这意味着它会读取用户输入的字符,但不会像getch()和getche()那样直接从键盘捕获按键。例如,使用getchar()时,用户输入的字符会先被存储在标准输入流中,然后程序再从这个流中读取字符。 总结来说,getch()、getche()和getchar()的主要区别在于输入方式和是否显示字符。getch()从键盘获取字符但不显示;getche()从键盘获取字符并显示;而getchar()

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧