web-dev-qa-db-fra.com

erreur C2065: 'cout': identifiant non déclaré

Je travaille sur la partie "pilote" de ma tâche de programmation et je continue à avoir cette erreur absurde:

erreur C2065: 'cout': identifiant non déclaré

J'ai même essayé d'utiliser le std :: cout mais je reçois une autre erreur qui dit: IntelliSense: l'espace de noms "std" n'a pas de membre "cout" quand j'ai déclaré avec un espace de noms std, inclus iostream + j'ai même essayé d'utiliser ostream

Je sais que c’est une question standard de noob mais cela m’a bouleversé et je suis novice (c’est-à-dire que j’ai programmé auparavant ...)

#include <iostream>
using namespace std;

int main () {
    cout << "hey" << endl;
 return 0;
}

J'utilise Visual Studio 2010 et Windows 7. Tous les fichiers .h ont "using namespace std" et incluent iostream et ostream.

64
Wallter

Dans Visual Studio, vous devez utiliser #include "stdafx.h" et être le premier inclus du fichier cpp.} _ Par exemple:

Ceux-ci vont pas fonctionner.

#include <iostream>
using namespace std;
int main () {
    cout << "hey" << endl;
    return 0;
}




#include <iostream>
#include "stdafx.h"
using namespace std;
int main () {
    cout << "hey" << endl;
    return 0;
}

Cela fera l'affaire.

#include "stdafx.h"
#include <iostream>
using namespace std;
int main () {
    cout << "hey" << endl;
    return 0;
}

Voici une excellente réponse sur ce que fait l'en-tête stdafx.h.

58
GeorgeChond

écrivez ce code, cela fonctionne parfaitement ..

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

using namespace std;

int main()
{
 cout<<"Hello World!";
  return 0;
}
47
Hrishikesh Choudhari

J'ai eu le même problème sur Visual Studio C++ 2010. Il est facile de résoudre le problème. Au-dessus de la fonction main (), il suffit de remplacer les lignes d’inclusion standard par ce qui suit, mais par le symbole dièse devant les inclus.

# include "stdafx.h"
# include <iostream>
using  namespace std;
10
mee

Le include "stdafx.h" est ok

Mais vous ne pouvez utiliser cout que si vous avez inclus using namespace std 

Si vous n'avez pas inclus namespace std, vous devez écrire std::cout au lieu de simple cout

8
user1899563

Si vous avez démarré un projet nécessitant la ligne #include "stdafx.h", mettez-le d'abord. 

4
Jerrey

J'ai vu que si vous utilisez

#include <iostream.h>

alors vous aurez le problème.

Si tu utilises 

#include <iostream>  

(avis - sans le .h)

alors vous n'obtiendrez pas le problème que vous avez mentionné.

4
G B

J'ai vu des choses similaires se produire lorsque j'utilisais l'extension de fichier .c avec du code C++. Autre que cela, je devrais être d'accord avec tout le monde sur une installation buggy. Cela fonctionne-t-il si vous essayez de compiler le projet avec une version antérieure de VS? Essayez VC++ Express 2008. C'est gratuit sur msdn.

3
goatlinks

Une telle solution idiote dans mon cas:

// Example a
#include <iostream>    
#include "stdafx.h"

Ce qui précède a été modifié conformément à l'exemple a, lorsque je l'ai modifié pour ressembler à l'exemple b ci-dessous ...

// Example b
#include "stdafx.h"
#include <iostream>  

Mon code compilé comme un charme. Essayez-le, garanti pour fonctionner. 

3
Sizons

Le code ci-dessous est compilé et fonctionne correctement pour moi avec gcc. Essayez de copier/coller ceci et voir si cela fonctionne. 

#include <iostream>
using namespace std;

int bob (int a) { cout << "hey" << endl; return 0; };

int main () {
    int a = 1;
    bob(a);
    return 0;
}
3
Glen

Si le seul fichier que vous incluez est iostream et qu'il indique toujours non défini, alors peut-être qu'iostream ne contient pas ce qu'il est supposé contenir. Est-il possible que vous ayez par hasard un fichier vide nommé "iostream" dans votre projet?

3
Bob Lied

avant de commencer ce programme, débarrassez-vous de tout le code et créez un monde simple bonjour à l'intérieur de main. Incluez seulement iostream et utilisez namespace std; . Ajoutez-y petit à petit pour trouver votre problème.

cout << "hi" << endl;
2
JonH

J'ai VS2010, Beta 1 et Beta 2 (un sur ma machine de travail et un à la maison), et j'ai utilisé std beaucoup sans problèmes. Essayez de taper:

std::

Et voyez si Intellisense vous donne quelque chose. Si cela vous donne les éléments habituels (abort, abs, acos, etc.), sauf pour cout, eh bien, que est un vrai casse-tête. Regardez dans vos en-têtes C++.

Au-delà de cela, j'ajouterais simplement pour vous assurer que vous exécutez un projet standard vide (pas de CLR, dans lequel Intellisense est paralysé), et que vous avez réellement essayé de construire le projet au moins une fois. Comme je l'ai mentionné dans un commentaire, VS2010 analyse les fichiers une fois que vous avez ajouté un include; il se peut que l'analyseur ait été bloqué et qu'il ne "trouve" pas "cout" tout de suite. (Dans quel cas, essayez de redémarrer VS peut-être?)

2
Dan Tao

J'ai eu le même problème lors du démarrage d'un projet ms c ++ 2010 à partir de zéro - j'ai supprimé tous les fichiers d'en-tête générés par ms et utilisé:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main() {
   cout << "hey" << endl;
   return 0;
}

Je devais inclure stdafx.h car cela causait une erreur de ne pas l'avoir dans.

2
oly

Prendre le code 

#include <iostream>
using namespace std;

À partir de votre fichier .cpp, créez un fichier d’en-tête et mettez-le dans le fichier .h. Puis ajouter

#include "whatever your header file is named.h"

en haut de votre code .cpp. Puis relancez-le.

2
Jameyson

Lorsque vous avez créé votre projet, vous n'avez pas défini correctement "utiliser les en-têtes précompilés". Modifiez-le dans propriétés-> C/C++ -> en-têtes précompilés.

1
john ktejik

Êtes-vous sûr de compiler en C++? Vérifiez votre nom de fichier (il devrait se terminer par .cpp). Vérifiez les paramètres de votre projet.

Il n’ya simplement aucun problème avec votre programme, et cout est dans namespace std. Votre installation de VS 2010 Beta 2 est défectueuse et je ne pense pas que ce soit simplement votre installation.

Je ne pense pas que VS 2010 soit prêt pour le C++. Le programme standard "Hello, World" ne fonctionnait pas sur la version bêta 1. Je venais d'essayer de créer une application de console Win32 de test et le fichier test.cpp généré n'avait pas de fonction main().

J'ai vraiment un très mauvais pressentiment à propos de VS 2010.

1
David Thornley

Essayez, ça va marcher. Je l'ai vérifié dans Windows XP, Visual Studio 2010 Express.

#include "stdafx.h"
#include <iostream>
using namespace std;

void main( ) 
{
   int i = 0;
   cout << "Enter a number: ";
   cin >> i;
}
1
Abdullah Muhammad

Incluez la bibliothèque std en insérant la ligne suivante en haut de votre code:

using namespace std;
1
cahit beyaz

Dans Visual studio, utilisez tous vos fichiers d'en-tête sous "stdafx.h".

1
Nithin

est normalement stocké dans le dossier C:\Program Files\Microsoft Visual Studio 8\VC\include. Vérifiez d'abord si c'est toujours là. Puis choisissez Outils + Options, Projets et solutions, Répertoires VC++, choisissez "Fichiers inclus" dans la liste déroulante "Afficher les répertoires pour" et vérifiez que l'inclusion $ (VCInstallDir) figure en haut de la liste.

0
Manohar

Je suis venu ici parce que j'avais le même problème, mais quand je l'ai fait, #include "stdafx.h" m'a dit qu'il ne trouvait pas ce fichier. 
Quel a été le truc pour moi: #include <algorithm>
J'utilise Microsoft Visual Studio 2008. 
Ce sont les choses que vous pouvez utiliser alors, incl. 'count': Link

0
Tenzin

Je suis tombé sur cette erreur après avoir installé vs 2010 et essayé de faire fonctionner un programme presque identique. 

J'ai déjà codé Vanilla C sur des boîtiers de style unix auparavant, j'ai décidé de jouer un peu avec cela moi-même. 

Le premier programme que j'ai essayé était:

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    cout << "Hello World!";
    return 0;
}

La grande chose à noter ici ... si vous avez déjà fait un codage C, 

int _tmain(int argc, _TCHAR* argv[])

Semble étrange. CA devrait etre:

int main( int argc, char ** argv )

Dans mon cas, je viens de changer le programme en:

#include <iostream>
using namespace std;

int main()
{
     cout << "Hello world from  VS 2010!\n";
     return 0;
}

Et cela a bien fonctionné.

Remarque: utilisez CTRL + F5 pour que la fenêtre de la console reste visible de sorte que vous puissiez voir les résultats. 

0
avgvstvs

Il suffit d'utiliser printf!

Incluez stdio.h dans votre fichier d'en-tête stdafx.h pour printf.

0
Ngoo Nam