• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小比丘
博客园    首页    新随笔    联系   管理    订阅  订阅
查看C/C++程序执行结果的方法------system("pause"),getchar(),cin.get()

使用一些IDE(Visual C++,Dev C++等等)编写C/C++程序,经常会看到程序的执行结果一闪而过,
为了查看程序的执行结果,可以在代码的最后加上

system("pause"); 

这是比较流行的做法,但是看看这篇文章吧 Things to Avoid in C/C++ -- system("pause") 
这篇文章不推荐大家使用"system("pause"); ",因为:
1. 不可移植。只适合DOS或Windows,但是不适合Linux等
2. 耗费系统资源。调用系统命令system(),去做"暂停程序"的事情有点大材小用。
3. 必须添加头文件:stdlib.h或者cstdlib
总之这是一个坏方法,应该摒弃。


此外,他还推荐了替代方法:
1. C中,使用getchar();
2. C++中,使用cin.get();

我来丰富一下两种替代方法:
1. C中

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

2. C++中

cout<<"按任意键继续……";
cin.clear();
cin.sync();
cin.get();

备注:加上cin.clear(); cin.sync();这两句,是清空缓存区,
         让cin.get();真正接收到你的键盘输入。


最后定的题目,因为不知道这个问题的具体描述,是“按任意键结束程序”,
还是“程序结束前暂停,等待用户输入任意字符”,还是“查看程序执行结果”,还是“回显”什么的?
没有明确的描述,暂且用这个名字吧。。

posted on 2012-07-24 20:06  小比丘  阅读(3183)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3