解决 C/C++ 程序执行一闪而过的方法

本文探讨了在VS及其它IDE中编写C/C++控制台程序时,如何避免执行结果一闪而过的现象。推荐使用getchar()和cin.get()代替system(“pause”),并解释了原因,包括不可移植性、资源浪费和头文件依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简述

在VS编写控制台程序的时候,包括使用其他IDE(Visual C++)编写C/C++程序,经常会看到程序的执行结果一闪而过,要解决这个问题,可以在代码的最后加上system(“pause”)、getchar()、cin.get()。

 

 

 推荐方法

比较常用的做法是使用system(“pause”),这篇文章:Things to Avoid in C/C++ – system(“pause”)不推荐使用”system(“pause”),因为:

  • 不可移植。只适合Dos或Windows,不适合Linux等。
  • 耗费系统资源。调用系统命令system()去做”暂停程序”的事情有点大材小用。
  • 必须添加头文件。stdlib.h或cstdlib。

所以,应该尽量摒弃。

推荐方法:

  • C中,使用getchar()。
  • C++中,使用cin.get()。

替代方法

丰富一下两种替代方法:

C中:

1 printf("按任意键继续……");
2 getchar();

 

C++中:

1 cout<<"按任意键继续……";
2 cin.clear();
3 cin.sync();
4 cin.get();
加上cin.clear()、cin.sync()这两句,是清空缓存区,让cin.get()真正接收到你的键盘输入。

转载于:https://blog.csdn.net/liang19890820/article/details/51785211#comments

转载于:https://www.cnblogs.com/kwinwei/p/11527114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值