2012-01-23 5 views
1

Lorsque je tente de compiler les éléments suivantsdans Cout Visual Studio 2010

#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; 
} 

Je reçois un message du compilateur:

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

Je suis dit que cout est indéfini. (Je n'aime pas écrire std::cout.)

J'utilise un projet Visual Studio par défaut. C'est la première fois que je l'utilise. Suggestions appréciées.

Répondre

2

Mettez votre iostream include et la déclaration d'espace de noms std après le stdafx.h include. Le programme va ensuite compiler et exécuter. Quant à savoir pourquoi, je suppose que les en-têtes précompilés (activés par défaut) reposent sur la séquence exacte des directives #include. Mettre iostream en premier signifie que le PCH pour stdafx ne correspond plus à la séquence réelle des déclarations connues du compilateur à ce moment-là.

+0

Merci. Mettre #include "stdafx.h" d'abord résolu le problème. Une autre question. Est-il possible d'obtenir la sortie à apparaître dans l'un des sous-fenêtres Visual Basic (comme dans Eclipse) plutôt que dans une fenêtre CommandPrompt? Et enfin, comment obtenez-vous même un programme à exécuter? Tout ce que je pouvais voir ce que l'option run-to-cursor dans le menu contextuel de droite. Il doit y avoir un moyen de dire simplement courir. – RussAbbott

+0

Vous avez créé un projet de ligne de commande pour qu'il s'exécute dans une fenêtre d'invite de commande. Je n'ai aucune idée de ce que vous entendez par "sous-fenêtre Visual Basic". Pour exécuter le programme appuyez simplement sur F5 ou Ctrl + F5 - voir le menu Déboguer dans Visual Studio. –

4
#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 dear! J'ai écrit le même code, mais en changeant seulement l'ordre des trois premières lignes. Il donne des résultats à la console sans aucune erreur ou avertissement. S'il te plaît vérifie le.