所以我今天正在学习C ++,而且我遇到了一个我似乎无法解决的问题。当我编写程序以从用户输入信息时,程序在用户输入信息之后立即关闭并且不显示输入的信息。
例如,这是代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
//Declar vairables
char letter = 'A';
int integer = 0;
float dec = 0.0f;
cout << "Enter a letter: ";
cin >> letter;
cout << "Enter an integer: ";
cin >> integer;
cout << "Enter a float number: ";
cin >> dec;
cout << endl;
//Output what user entered
cout << "letter: " << letter << endl;
cout << "integer: " << integer << endl;
cout << "float number: " << dec << endl;
}
现在,当我运行它时,控制台会要求我:
在此之后,程序立即关闭而不显示此段代码应该执行的输出:
//Output what user entered
cout << "letter: " << letter << endl;
cout << "integer: " << integer << endl;
cout << "float number: " << dec << endl; }
这让我摸不着头脑,因为没有编译错误,代码被eInstitute Publishing直接从 C ++ Programming for Games 中删除。
答案 0 :(得分:7)
您的计划正在退出。由于命令行是通过执行进程打开的,所以当进程退出时它会关闭。您可以在主要功能的末尾添加对cin
的呼叫,以便暂停直到按下输入,例如:
cout << "Press any key to close the program";
char c;
cin >> c;
答案 1 :(得分:2)
这是在调试模式下运行程序时经常发生的情况。您的程序执行最终的 couts 并打印它们,然后立即跳转到 return 0; 语句。您必须要求输入作为最终操作,以防止程序立即关闭。
为避免这种情况,您可以在程序结束时添加:
char c;
std::cin>>c;
这将模拟暂停。
如果你在Windows上,你也可以调用 system(“PAUSE”); 虽然这不是跨平台的。
答案 2 :(得分:0)
您可能直接从IDE运行它,这就是它发生的原因。在程序结束时有另一个输入语句,这将强制程序暂停,你会看到屏幕。
答案 3 :(得分:0)
我可以更好地指出问题,如果说的代码是有问题的,但我认为问题是你试图用visual studio进行编译,你想要调试你的项目(你按f5)我想如果你按ctrl + f5可以解决问题,(它使程序在没有调试的情况下运行,并且等待一个键直到程序完成),另一种方法是在你的程序结束时添加另一个cin
程序,这样你就可以看到在控制台关闭之前写的是什么。
答案 4 :(得分:0)
答案 5 :(得分:-1)
嗯,尝试插入
#include<stdlib.h>
你的指令中的和
System.("Pause");
在你的程序的最后。它立即关闭只是因为它崩溃,给你“发送错误”窗口,或者它只是简单地完成并且程序完成。虽然Ed是正确的,但另一个cin
调用也可以解决这个问题。
答案 6 :(得分:-2)
事情是,在向控制台显示您的行之后,所有应用程序都会退出。您可以通过以下方式恢复此操作:在代码的其余部分下方添加额外的命令行,例如:
int main() {
// ...your code
char buffer[100];
cin>>buffer;
}
另一种更好的方法是使用system
API并调用pause(如果你在windows上运行它)。请查看here以了解有关API的更多信息。
#include <stdio.h>
#include <stdlib.h>
// your includes, NO DUPLICATES!
int main() {
// ...your code
system("pause");
}