C++有没有一个函数可以在读取一个字符(不是getch)后自动中断输入流

HELLOSPA 2024-11-16 18:50:50

如题 就像C#中的Console.Read函数一样

...全文
203 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2024-11-18
  • 打赏
  • 举报
回复

在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
//自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。
  • 打赏
  • 举报
回复

怎么个中断法?

资源下载链接为: 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()

65,199

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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