C++当我运行程序时,它会自拍
C++. Program selfkills when I run it
可能重复:
如何阻止C++控制台应用程序立即退出?
我是C++的新手。在教程之后,我的程序在执行完简单命令(比如cout-ans之类的)后就自杀了。我发现了get.cin()函数可以避免这种情况。然而,每当我使用"cin"命令插入变量时,程序都会在收到输入并执行工作后自行终止。有办法避免这种情况吗?非常感谢!
当程序接收到输入时,即使您使用std::cin.get()
,它也会退出,因为每当cin
读取输入时,都有可能留下一些垃圾;当你打电话给std::cin.get()
时,你会收到那些垃圾。
您要做的是清除cin
中任何不需要的数据,这样std::cin.get()
就没有什么可读取的内容,需要等待新的输入。
...
std::cin.clear();
std::cin.get();
return 0;
程序不会"自杀"。当它完成了它应该做的所有事情时(即,当您从main
返回时),它只是退出。
这取决于你设置你的工作环境,这样你就可以看到程序的输出。例如,如果您在Windows中,您可以打开自己的命令行(运行cmd
)并从中运行程序;或者指示IDE在程序退出后不要关闭终端窗口。
你的程序在执行后不会自杀,它只是结束它。
简单示例:
#include <iostream>
int main( int argc, const char* argv[] )
{
std::cout << "Hello, World" << std::endl;
return 0; // End of execution
}
在这个例子中,一个小窗口打开然后很快关闭,因为代码的逻辑是这样说的,然而在下一个例子中:
#include <iostream>
int main( int argc, const char* argv[])
{
std::cout <<"Hello, World!" << std::endl;
std::cin.get();
return 0;
}
您的应用程序仍将显示在屏幕上,直到您按下回车键,然后它将退出。
如果您使用Windows操作系统,请考虑下一个示例:
#include <iostream>
int main( int argc, const char* argv[])
{
std::cout << "Hello, World!" << std::endl;
system("PAUSE");
return 0;
}
请注意,system("PAUSE")
仅在Windows中运行,不会在其他操作系统上运行。
这里还有一件值得一提的事,有很多方法可以使用这些之外的其他方法,但我写了最常见的方法。
在一些窗口系统中,程序执行时会创建控制台窗口。程序结束后,此控制台窗口将消失。
我总是向新手推荐"暂停"模式:
cout << "Paused. Press ENTER to continue.n");
cin.ignore(10000, 'n'); // Ignore until 100000 characters are entered or a newline is entered.
有时,我会把它变成一个函数:
void Pause(void)
{
cout << "Paused. Press ENTER to continue.n");
cin.ignore(10000, 'n'); // Ignore until 100000 characters are entered or a newline is entered.
}
希望这有帮助,
std::cin.get()
运行良好,使用非常简单,但它希望用户按回车键。我以前用ESC
结束我的程序,所以它对我不起作用,所以我用这个
#ifdef _WIN32
std::system( "pause" );
#else
std::system( "read -n1 -r -p "Press any key to continue..."" );
#endif
它会打印"按任意键继续…",并在按任意键的情况下继续执行,这样我就可以使用我可爱的ESC
- 运行程序时出现问题
- 分段错误当我试图运行程序时出错
- C++ 每次运行程序时我都会"nan"输出的问题
- 通过 g++ 运行程序时没有这样的文件或目录
- 重新运行程序和字符串流?
- 无法在 VS Code 上使用代码运行程序运行C++文件
- 使用有限的 RAM 运行 c++ 程序
- 继续运行程序而无需任何干预,直到要求退出为止
- 如何在每次运行程序时写入文件的下一行?
- 控制台在运行C ++程序后立即关闭(无需调试)
- 运行程序时找不到共享对象库,但在编译过程中链接了它
- 远程运行程序
- 在 Heroku 上运行 C++ 程序
- 如何在Powershell中运行C++程序,就像CMD一样?
- 为什么与Java和Python相比,使用Cmake运行C++程序每次都需要这么长时间?
- C++随机数生成器通常在 Visual Studio 中运行程序时在 2 次后停止生成数字
- 崇高文本 3 - 在终端中编译并运行 C++ 程序(路径包含空格)
- 我收到阻止我运行程序的警告,但不确定如何解决
- C++ Visual Studio 无法完全运行程序
- 在SIGABRT c ++信号之后继续运行程序