最近,我一直试图从这个网站学习c++。不幸的是,每当我试图运行其中一个代码示例时,我看到该程序打开了大约半秒钟,然后立即关闭。有没有办法阻止程序立即关闭,以便我能看到我的努力的成果?
当前回答
在代码结束之前,插入这行代码:
system("pause");
这将保持控制台,直到你按下一个键。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s;
cout << "Please enter your first name followed by a newline\n";
cin >> s;
cout << "Hello, " << s << '\n';
system("pause"); // <----------------------------------
return 0; // This return statement isn't necessary
}
其他回答
调用cin.get ();2次:
//...
cin.get();
cin.get();
return 0
}
如果你正在使用微软的Visual c++ 2010 Express,并遇到CTRL+F5无法在程序终止后保持控制台打开的问题,请查看这个MSDN线程。
可能你的IDE被设置在CTRL+F5运行后关闭控制台;事实上,Visual c++ 2010中的“空项目”默认关闭控制台。要改变这一点,请按照微软版主的建议执行:
请右键单击您的项目名称,进入属性页面,展开配置属性->连接器->系统,在子系统下拉菜单中选择控制台(/子系统:控制台)。因为,在默认情况下,Empty项目不指定它。
在任何exit()函数之前或main()中的任何return之前添加以下行:
std::cout << "Paused, press ENTER to continue." << std::endl;
cin.ignore(100000, "\n");
这里有个问题,不太明显。不知怎么的,我在程序的最后一行添加了一个调试断点。不知道我是怎么做到的,可能是在不同屏幕之间跳跃时错误地点击了鼠标。我在VS Code工作。
当我进行调试时,系统立即跳转到那个断点。没有错误消息,没有临时输出,什么都没有。我就想,程序是怎么通过我设置的所有断点的?我花了太长时间才想明白。
显然,系统将最后一行断点视为“第一个”停止。简单的解决方法?删除断点,哎呀!(此处插入前额。)
如果您从一个合格的IDE(如code::Blocks)运行代码,IDE将管理它用来运行代码的控制台,在应用程序关闭时保持打开状态。您不希望添加特殊的代码来保持控制台的打开状态,因为这将阻止它在IDE之外实际使用时正常工作。
推荐文章
- cbegin/cend背后的原因是什么?
- 如何在Eclipse CDT中启用c++ 11/ c++ 0x支持?
- 将string (or char*)转换为wstring (or wchar_t*)
- 如何停止c++控制台应用程序从退出立即?
- 有没有替换Windows (Visual C)的unistd.h ?
- 目标文件中无法解析的外部符号
- Lambda捕获作为const引用?
- 如何从c风格数组初始化std::vector ?
- 是std::vector复制对象push_back?
- 从输出中删除颜色
- 为什么在c++ 11中使用非成员begin和end函数?
- 如何通过参数和重定向stdin从一个文件到程序运行在gdb?
- 为什么两个不同的概念都叫“堆”?
- 为什么这个结合赋值和相等检查的if语句返回true?
- cplusplus.com给出的错误、误解或坏建议是什么?