Visual C++ 2012 cout在运行时崩溃

Sun*_*ius 6 c++ cout ostream

我今天决定尝试使用Visual Studio 2012 Express.首先要写的是"Hello world!" 然而,应用程序,我无法使它工作.我创建了一个Windows控制台应用程序项目,编写了标准代码,导致运行时错误.

这是我的代码:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello world!" << endl;

    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

看起来有些东西坏了(也许我错过了什么?).它在第7行遇到运行时错误:

http://img443.imageshack.us/img443/7497/coutbroken.png

有什么帮助吗?:)

Moo*_*uck 17

由于DeadMG的回答是粗鲁和模糊的:

Visual Studio 2012 默认使用支持SSE2的计算机,其中包括过去十年中制作的几乎所有处理器.不幸的是,您的AMD Athalon XP已有12年历史,并且没有SSE2,因此要运行您的程序,您需要禁用这些指令.

在Visual Studio 2008上(您没有这个),方法是打开"解决方案窗口",右键单击项目 - >属性 - >配置属性 - > C++ - >代码生成 - >启用增强指令集.将其设置为"未设置".

您有Visual Studio 2012(我没有),因此您的说明会有所不同.官方说明如下:打开项目的"属性页"对话框,选择"C/C++"文件夹,选择"代码生成"属性页,然后选择"修改启用增强指令集"属性. 来源.

  • 如果DeadMG希望将这些信息复制到他的答案和/或使他不那么粗鲁,我会删除这个.我的目标是帮助,而不是窃取代表. (3认同)

Pup*_*ppy 13

您的CPU迫切需要被废弃.您的编译器可能是从本世纪开始为CPU设置的.您可以禁用SSE2之类的新指令.

  • 我的观点是"你的CPU注定垃圾堆"是荒谬的.并非每个人每两年更换一次系统.一般来说,没有_actual_需要. (4认同)
  • "每两年"和"十二年"之间存在很大差异 - 特别是考虑到英特尔在这些年里取得的成就.Athlon XP的性能远远低于目前任何计划的目标.我很惊讶VS甚至会执行,而不是为SSE2本身编译. (3认同)
  • @DeadMG:VS会执行你会感到惊讶吗?你是认真的吗?你知道还有多少台电脑还在运行XP吗?XP中有多少代码可以追溯到Windows 98天?你似乎在脑海中有这个奇怪的想法,一般来说,程序在很短的时间内是向后兼容的. (3认同)
  • 我没有看到_any_有理由认为Visual C++和`std :: cout`无法在2001 Athlon上运行.但是,是的,也许需要一些配置. (2认同)
  • @Basic不,他只是说编译器是为错误的机器配置的(事实上它应该得+1),虽然措辞有点荒谬和过度概括(可能值得-1). (2认同)