#include <iostream>
using namespace std;
int main()
{
int x = 42;
cout << x; // This line doesn't print! Why?
return 0;
}
Visual C ++的屏幕截图:http://bildr.no/image/ZlVBV0k0.jpeg
这段代码只给我一个黑色的控制台窗口,当我点击调试时它会闪烁。是不是应该在控制台窗口中打印数字42?这是我在C ++中的第一个应用程序。我有高中C#的经验。
编辑:
现在我尝试了这段代码:
// Primtallsgenerator.cpp : Defines the entry point for the console application.
//
#include <iostream>
using namespace std;
int main()
{
int x = 42;
cout << x << endl; // This line doesn't print! Why?
cin >> x;
return 0;
}
它仍然不起作用。此处代码的屏幕截图:http://bildr.no/image/ODNRc3lG.jpeg
黑色的窗户仍然闪烁......
答案 0 :(得分:1)
确实打印了这条消息,你看到它的速度太快了。
添加此命令:
cin >> x;
或者这个
while(true) {}
在返回声明之前。
答案 1 :(得分:1)
是的,它会打印该号码。然后程序结束,控制台窗口关闭。在调试器中运行它,并在return 0;
行上放置一个断点。然后你会看到它。
答案 2 :(得分:1)
有两点需要注意:
首先,您不是强制缓冲区刷新,因此无法保证在程序结束之前将输出发送到屏幕。将您的cout
声明更改为:
cout << x << endl;
其次,Visual Studio将在结束时关闭控制台(在调试模式下)。如果你不调试它(默认情况下为Ctrl-F5),它将保持控制台打开,直到你按下一个键。这将允许您查看输出。或者,您可以在return语句之前添加cin.get()
,这将强制程序在允许程序退出之前等待字符在输入流中。
答案 3 :(得分:1)
此代码应该可以正常工作:
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int x = 42;
cout << x;
getchar();
return 0;
}
另请查看有关getchar()。
的文档答案 4 :(得分:0)
我建议在“return 0”语句之前使用系统暂停,如下所示:
system("PAUSE");
这更清洁,更有效。
答案 5 :(得分:0)
如果您正在使用Visual Studio中的控制台应用程序,则必须转到项目的链接器属性并将SubSystem
设置为CONSOLE
。
当您不需要调试器时,习惯在没有调试器的情况下运行代码 (默认情况下为Ctrl + F5)。这样,控制台窗口不会自动闪烁并消失。