error C2065: 'cout' : identificateur non déclaré
Je suis en train de travailler sur le "pilote" une partie de ma programmation de l'affectation et je reçois cette erreur absurde:
error C2065: 'cout' : identificateur non déclaré
J'ai même essayé d'utiliser le std::cout mais j'ai une autre erreur qui dit: IntelliSense: espace de noms "std" n'a pas de membre "cout" quand je l'ai déclaré à using namespace std, inclus iostream + j'ai même essayé d'utiliser ostream
Je sais que c'est un standard de question de noob, mais ce qui a déconcerté les moi et je suis un novice (ce qui signifie: j'ai programmé avant...)
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
Je suis à l'aide de Visual Studio 2010 et Windows 7. Tous les de la .h les fichiers ont "using namespace std" et inclure iostream et ostream.
- Supprimer tous les fichiers d'en-tête mais iostream, puis essayez à nouveau.
- Ne devrait pas << fin endl?
- << end; devrait << endl; ?
- ouais désolé j'ai changé mais rien n' - à la fois la endl et en utilisant uniquement le iostream - essayé: à l'aide de la iostream w/ l'espace de noms std mais pas de chance
- "REMARQUE: toutes les .h des fichiers à inclure l'espace de noms std - et inclure des oi et o cours d'eau..." <-- Si tu veux dire tous les .h les fichiers ont "using namespace std;" en eux, vous pourriez vouloir reconsidérer...
int main
, pasint Main
. Et le point-virgule après le corps d'une fonction n'est pas nécessaire.- avez-vous essayé la suggestion donné @Timo Geusch? Ce qui arrive ensuite?
- oui-rien n'a changé
- Avez-vous essayez de la remplacer par int main() et retournant une valeur ?
- oui rien - j'ai essayé de nettoyer la construire, mais toujours rien
- ok..encore un essai, ce qui se passe quand vous faites un clic droit sur iostream et l'utilisation d'ouvrir le fichier iostream (je ne me souviens pas de ce qui est exactement l'option)? Est-il en mesure de l'ouvrir?
- Quel compilateur que vous utilisez? Pouvez-vous commencer un nouveau projet sur un nouveau build du compilateur. Quelque chose me dit que vos fichiers sont corrompus ou quelque chose ne s'est pas installer donc en douceur. Tout le monde a posté valide le code C++, donc ça devrait marcher :).
- Aussi reposter ton code entier comme une modification afin de voir les modifications que vous avez apportées. Sinon, on ne peut pas faire confiance que vous avez réussi à se débarrasser de point-virgule après le bob fonction.
- oui, je peux.
- Tout semble bon ici et compile mais je ne l'utiliser par rapport à 2010. N'est pas que dans la bêta :-p. Argh utiliser 2008 et de le vérifier!
- ouais je pense que c'est le compilateur, IDK pourquoi il le ferait mais je vais le réinstaller 🙂 merci les gars
- Avez-vous essayez de compiler ce ou avez-vous juste de voir les erreurs dans Visual Studio? Je crois que la première fois que vous démarrez un projet C++ dans VS2010, il peut commencer la numérisation de tous les
std
les en-têtes et ne peut pas identifier les même trucs de base commestd::cout
au premier abord. Mais si vous essayez de le construire, il devrait fonctionner... - Aussi, est-ce un projet vide, ou un CLR projet? Je suis sûr que Intellisense ne fonctionne pas dans VS2010 pour le CLR (c'est à dire, .NET) des projets.
- Intellisense ne fonctionne pas pour le C++/CLI, mais il ne faut pas se faire des messages d'erreur quel que soit (juste pas l'achèvement invites).
- Votre question ne mentionne intellisense. Ne vous procurez-vous des erreurs de compilation trop?
- Jalf.com, le premier paragraphe mentionne compiler error C2065.
- Quel est le nom du fichier que vous tentez de compiler, y compris l'extension? J'ai trouvé que Visual Studio va compiler quoi que ce soit avec un .c comme extension de fichier c et .rpc avec le c++... cela semble stupide, je sais, et probablement déjà suggéré.
- Je doute sérieusement que Visual Studio a un bug concernant le cout.
- Il perplexe moi aussi je me suis confronté exactement le même problème et j'ai commencé à chercher une explication en ligne, c'est pourquoi je suis ici. Je suis enclin à penser que le compilateur n'a pas ce qu'il faut d'abord, lorsque j'ai utilisé cette ligne, std::cout<<"Bonjour"; Mais après j'ai fait un build et utilisée, l'erreur disparaît. Aussi, j'ai inclus cette ligne, "#include <%iostream%>" sans le symbole " % " dans stdafx.h. A utiliser % ici depuis le navigateur a été l'analyse que comme une balise. J'espère que vous avez déjà trouvé une solution en dès maintenant! 🙂
- Vous êtes en cours d'exécution comme un C, pas du C++.
- Si il y a un bug, ce serait génial si vous pouviez décrire le bug de votre réponse et d'inclure un lien pour le rapport de bug.
- Pourquoi cette question a beaucoup de votes? OOB ce code fonctionne et il n'y a pas de réponse définitive à ce sujet..
Vous devez vous connecter pour publier un commentaire.
Dans Visual Studio, vous devez
#include "stdafx.h"
et être la première include du fichier cpp. Par exemple:Ces pas travail.
Cela va faire.
Voici une excellente réponse sur ce que l'stdafx.h en-tête n'.
stdafx.h
n'.écrire ce code, il fonctionne parfaitement..
J'ai eu le même problème sur Visual Studio C++ 2010. Il est facile d'y remédier. Au-dessus de la fonction main (), il suffit de remplacer le standard inclure des lignes avec ce ci-dessous, mais avec le symbole livre devant le comprend.
La
include "stdafx.h"
est okMais vous ne pouvez pas utiliser
cout
sauf si vous avez inclususing namespace std
Si vous n'avez pas inclus de l'espace de noms std vous devez écrire
std::cout
au lieu d'une simplecout
J'ai vu que si vous utilisez
alors vous obtiendrez le problème.
Si vous utilisez
(avis - sans .h)
alors vous n'obtiendrez pas le problème que vous avez mentionné.
iostream
. Il n'est pas nomméiostream.h
.iostream.h
n'existe pas. Simple que cela.Si vous avez commencé un projet nécessitant la
#include "stdafx.h"
ligne, de le mettre en premier.Le code ci-dessous compile et s'exécute correctement pour moi à l'aide de gcc. Essayez de le copier/coller de ceci et voir si cela fonctionne.
Si le seul fichier que vous inclure iostream et il dit encore indéfini, alors peut-être iostream ne contient pas de ce qu'il est censé. Est-il possible que vous avez un fichier vide nommé par coïncidence "iostream" dans votre projet?
J'ai vu des choses semblables se produisent lorsque j'ai été en utilisant le .c une extension de fichier avec le code C++. Autre que cela, je dois d'accord avec tout le monde sur un buggy de l'installation. Ne fonctionnera pas si vous essayez de compiler le projet avec une version antérieure de VS? Essayez de VC++ Express 2008. Son gratuit sur msdn.
Une telle solution stupide dans mon cas:
Ci-dessus a été odered comme par exemple, lorsque je l'ai changé pour ressembler à l'exemple b ci-dessous...
Mon code compilé comme un charme. L'essayer, garanti pour fonctionner.
J'ai VS2010, bêta 1 et Bêta 2 (un sur ma machine de travail et à la maison), et j'ai utilisé
std
beaucoup sans problèmes. Essayez de taper:Et voir si Intellisense vous donne quelque chose. Si elle vous donne les trucs habituels (
abort
,abs
,acos
, etc.), sauf pourcout
, eh bien, que est tout à fait un jeu de puzzle. Vraiment regarder dans votre C++ en-têtes dans ce cas.Au-delà de ça, je voudrais juste ajouter à assurez-vous que vous utilisez un régulier, un projet vide (pas CLR, où Intellisense est paralysé), et que vous avez effectivement tenté de construire le projet au moins une fois. Comme je l'ai mentionné dans un commentaire, VS2010 traite les fichiers une fois que vous avez ajouté une
include
; il se pourrait que quelque chose de coincé, l'analyseur et il n'a pas "trouver"cout
tout de suite. (Dans ce cas, essayez de redémarrer VS peut-être?)De prendre le code
de votre .rpc fichier, de créer un fichier d'en-tête et de mettre cela dans la .h fichier. Puis ajouter
en haut de votre .rpc code. Ensuite, relancez-le.
J'ai eu le même problème lors du démarrage d'un ms c++ 2010 projet à partir de zéro - j'ai supprimé tous les fichiers d'en-tête généré par mme et mais utilisé:
J'ai dû inclure
stdafx.h
comme il a causé une erreur de ne pas l'avoir dans.avant de commencer ce programme se débarrasser de tout le code et faire un simple bonjour tout le monde, à l'intérieur de la main. Seulement inclure iostream et using namespace std;.
Peu à peu, ajouter à trouver votre problème.
#include <iostream> int main() { std::cout << "ok"; }
, alors quelque chose est mal cassé dans votre implémentation C++. Quel compilateur que vous utilisez?cl.exe
?Êtes-vous sûr qu'il compile en C++? Vérifiez le nom de votre fichier (il devrait prendre fin en
.cpp
). Vérifiez les paramètres de votre projet.Il n'y a rien de mal avec votre programme, et
cout
est dansnamespace std
. Votre installation de visual studio 2010 Beta 2 est défectueux, et je ne pense pas que c'est juste votre installation.Je ne pense pas que VS 2010 est prêt pour le C++ encore. La norme "Hello, World" programme ne fonctionne pas sur la Beta 1. J'ai juste essayé de créer un test à l'application console Win32, et les
test.cpp
fichier n'a pas eu unemain()
fonction.J'ai vraiment, vraiment mauvais pressentiment par rapport à 2010.
L'essayer, ça fonctionne. Je l'ai vérifié dans Windows XP, Visual Studio 2010 Express.
main
retourneint
. Toujours.Lorsque vous avez créé votre projet, vous n'avez pas "utilisation des en-têtes précompilés" correctement. Changement dans les propriétés->C/C++->les en-têtes précompilés.
Dans Visual studio utiliser tout votre en-tête de filer ci-dessous "stdafx.h".
Inclure les mst bibliothèque en insérant la ligne suivante en haut de votre code:
est normalement stocké dans le C:\Program Files\Microsoft Visual Studio 8\VC\include dossier. Vérifiez d'abord si elle est toujours là. Ensuite, choisissez Outils + Options, des Projets et des Solutions, Répertoires de VC++, sélectionnez "Inclure les fichiers" dans la partie "Afficher les Répertoires pour" zone de liste déroulante et double-vérifier que $(VCInstallDir)est en haut de la liste.
J'ai couru à travers cette erreur juste après avoir installé visual studio 2010 et juste essayer d'obtenir presque le même programme de travail.
Je l'ai fait à la vanille C le code de style unix boîtes avant de les, a décidé que je devrais jouer un peu moi-même.
Le premier programme que j'ai essayé était:
La grande chose à remarquer ici... si vous avez DÉJÀ fait de C codage,
Fait un peu bizarre. il doit être:
Dans mon cas, j'ai juste changé le programme:
Et il a bien fonctionné.
Remarque: Utilisez CTRL + F5 pour que la fenêtre de la console de bâtons autour de sorte que vous pouvez voir les résultats.
Suffit d'utiliser
printf
!Inclure
stdio.h
dans votrestdafx.h
fichier d'en-tête pourprintf
.Je suis venu ici parce que j'ai eu le même problème, mais quand je n'ai
#include "stdafx.h"
il dit, qu'il ne trouve pas ce fichier.Ce qui a fait le tour pour moi a été:
#include <algorithm>
.J'utilise Microsoft Visual Studio 2008.
Ce sont les choses que vous pouvez utiliser ensuite, incl. "count": Lien
Il a été le compilateur - je suis maintenant à l'aide d'Eclipse Galileo et le programme fonctionne comme un prodige