我正在尝试用C ++在Visual Studio 2010中构建第一个简单程序:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}
但它不能像写的那样工作(我运行它时看不到任何输出)。我能让它发挥作用的唯一方法是添加#include <conio.h>
和getch()
。当使用Visual Studio 2010进行编译时,为什么程序在没有这两行代码的情况下工作,当它与其他编译器一起编译时呢?
答案 0 :(得分:0)
如果在Visual Studio 2010中运行,您提供的程序工作正常。但是,如果您在Visual Studio外部运行它(例如从Windows资源管理器中),您可能认为它不起作用,因为它打印了“Hello World” !”然后立即终止。要保持打开时间足以在运行时查看输出,您可能需要执行类似等待用户输入的操作,但程序本身就可以正常运行并执行使用任何其他编译器编译时的操作。顺便说一下,如果你用另一个编译器编译它然后从Windows资源管理器运行它,你会看到相同的行为 - 问题与编译器无关,而是与你运行程序的方式有关。如果从命令提示符(cmd)运行程序,您将看到输出而不会立即关闭窗口的问题。
答案 1 :(得分:0)
此代码在Visual Studio 2010中有效。您的问题是其他问题:
控制台窗口关闭得如此之快,以至于您看不到输出。这也是为什么添加conio.h
和getch()
,cin
或system("pause")
会暂时解决您的问题的原因。
尝试以下方法: 打开命令行(cmd.exe),输入已编译的.exe文件的路径,然后按回车键 - 然后您应该看到程序的输出。
答案 2 :(得分:-1)
尝试:
int main() {
cout << "Hello world!" << endl
int a;
cin >> a;
}
说明: 我认为正在发生的事情是你的visual studio显示的结果窗口会立即消失。要阻止它这样做,你可以要求用户在程序结束前输入一些内容。