cout в Visual Studio 2010 - PullRequest
       0

cout в Visual Studio 2010

1 голос
/ 23 января 2012

Когда я пытаюсь скомпилировать следующее

#include <iostream>

using namespace std;

#include "stdafx.h"  // This was included by Visual Studio 


int _tmain(int argc, _TCHAR* argv[])  // The name _tmain was generated by Visual Studio
{
    int a = 1;
    cout << a << "\n";
    return 0;
}

, я получаю сообщение компилятора:

warning C4627: '#include <iostream>': skipped when looking for precompiled header use
                Add directive to 'StdAfx.h' or rebuild precompiled header

Затем мне говорят, что cout не определено.(Это не помогает писать std::cout.)

Я использую проекты Visual Studio по умолчанию.Это первый раз, когда я использовал это.Предложения приветствуются.

Ответы [ 2 ]

4 голосов
/ 24 января 2012
#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a=10;
    cout << a << "\n";
    cin>>a;
    return 0;
}

Slam дорогой! Я написал тот же код, но изменил только порядок первых трех строк. Это дает результат на консоли без каких-либо ошибок или предупреждений. Пожалуйста, проверь это.

2 голосов
/ 23 января 2012

Поместите свой iostream include и объявление пространства имен std после stdafx.h include.Затем программа скомпилируется и запустится.

Что касается того, почему, я предполагаю, что предварительно скомпилированные заголовки (по умолчанию включены) полагаются на точную последовательность директив #include.Если сначала поставить iostream, это означает, что PCH для stdafx больше не соответствует фактической последовательности объявлений, известной компилятору на тот момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...