最近,我一直试图从这个网站学习c++。不幸的是,每当我试图运行其中一个代码示例时,我看到该程序打开了大约半秒钟,然后立即关闭。有没有办法阻止程序立即关闭,以便我能看到我的努力的成果?
当前回答
简单地把它放在代码的末尾:
而(1){}
这个函数将一直运行下去(或者直到您关闭控制台为止),并将防止控制台自己关闭。
其他回答
使用#include "stdafx.h" & system("pause");就像下面的代码一样。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
std::cout << "hello programmer!\n\nEnter 2 numbers: ";
int x, y;
std::cin >> x >> y;
int w = x*y;
std::cout <<"\nyour answer is: "<< w << endl;
system("pause");
}
以调试模式启动,使用F5运行代码 要停止你的控制台应用程序,不要点击红叉,而是按CTRL-break 你会在程序的最后碰到所有的断点。
这似乎很有效:
cin.clear();
cin.ignore(2);
如果您先清除缓冲区,那么当您读取下一个缓冲区时就不会有问题。 由于某些原因,sin .ignore(1)不起作用,它必须是2。
编辑:正如Charles Bailey在下面的评论中正确指出的那样,如果stdin中缓冲了字符,这将不起作用,而且真的没有好方法来解决这个问题。如果运行时附带调试器,John Dibling建议的解决方案可能是解决问题的最干净的解决方案。
也就是说,我把它留在这里,也许其他人会觉得它有用。在开发期间编写测试时,我经常使用它作为一种快速的方法。
在main函数的末尾,你可以调用std::getchar();
这将从stdin中获取单个字符,从而为您提供“按任意键继续”类型的行为(如果您确实想要“按任意键”消息,则必须自己打印一条)。
你需要为getchar添加#include <cstdio>。
简单地把它放在代码的末尾:
而(1){}
这个函数将一直运行下去(或者直到您关闭控制台为止),并将防止控制台自己关闭。
推荐文章
- 如何禁用标准错误流的日志记录?
- c++ 11中的递归lambda函数
- 在c++中指针使用NULL或0(零)吗?
- 在c++中,如何将int值附加到字符串中?
- 就性能而言,使用std::memcpy()还是std::copy()更好?
- 为什么布尔值是1字节而不是1位?
- 四舍五入到一个数字的最接近倍数
- 为什么“System.out。”println“工作在Android?
- 模板默认参数
- c++ auto关键字。为什么它是魔法?
- c++操作符中的隐式类型转换规则
- 为什么c++需要一个单独的头文件?
- 如何有效地清除std::queue ?
- 在哪种情况下我使用特定的STL容器?
- Uint8_t不能用cout打印