Visual Studio C++2015程序生成并打开控制台窗口,但没有输出

Visual Studio C++ 2015 Program Builds and Opens Console Window But No Output

本文关键字:窗口 输出 控制台 C++2015 Studio 程序生成 Visual      更新时间:2023-10-16

我用c++编写了一个简单的hello-world程序,以确保不是编程错误导致了我的困难。如果你想查看程序:

#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "Hello, Worldn";
std::cin.ignore();
return 0;
}

不管怎样,当我打开几个月前制作的一个程序时。(我最近又开始学习了)并运行它输出的程序。当从头开始创建新程序时,程序会构建并打开控制台窗口,但仍处于空白屏幕。我相信这是IDE的错,我在某个地方错过了一个设置。

新程序:

#include "stdafx.h"
#include <iostream>
int main()
{
std::cout << "Hello, Worldn";
std::cin.ignore();
return 0;
}

Ctrl+F5:空白控制台

旧程序:

#include "stdafx.h"
#include <iostream>

int doubleNumber(int x) {
return x * 2;
}
int main()
{   
std::cout << "Starting Main" << std::endl;
int y;
std::cout << "Please enter a value you would like to double: ";
std::cin >> y;
y = doubleNumber(y);
std::cout << y << std::endl;
std::cout << "Ending Main" << std::endl;
std::cin.clear();
std::cin.ignore(32767, 'n');
std::cin.get();
return 0;
}

Ctrl+F5:控制台,因为它应该是

在新旧程序的所有情况下都会出现此问题。我今天编写的程序不会在控制台上显示任何内容,但我过去编写的程序会显示为inteled。

std::endl将把缓冲输出刷新到控制台。旧程序使用它。您的"今日"程序没有,因此它们的输出仍在输出缓冲区中。将字符串中的"n"替换为std::endl

我的问题的解决方案是禁用avast防病毒软件。尽管这听起来很简单,但它确实是解决方案。如果你有这个问题,我建议你也禁用防病毒软件。