Ich arbeite am 'Treiber'-Teil meiner Programmieraufgabe und bekomme immer wieder diesen absurden Fehler:
Fehler C2065: 'cout': nicht deklarierter Bezeichner
Ich habe sogar versucht, std :: cout zu verwenden, aber ich erhalte einen weiteren Fehler, der besagt: IntelliSense: Der Namespace "std" hat kein Mitglied "cout", wenn ich die Verwendung des Namespace std angegeben habe, einschließlich iostream + Ich habe sogar versucht, ostream zu verwenden
Ich weiß, dass es eine Standard-Noob-Frage ist, aber das hat mich verblüfft und ich bin ein Neuling (was bedeutet: Ich habe schon einmal programmiert ...)
#include <iostream>
using namespace std;
int main () {
cout << "hey" << endl;
return 0;
}
Ich verwende Visual Studio 2010 und verwende Windows 7. Alle .h-Dateien haben "using namespace std" und enthalten iostream und ostream.
c++
namespaces
visual-studio-2010
std
Wallter
quelle
quelle
int main
nichtint Main
. Ein Semikolon nach einem Funktionskörper ist nicht erforderlich.Antworten:
In Visual Studio müssen
#include "stdafx.h"
und müssen Sie das erste Include der CPP-Datei sein. Zum Beispiel:Diese werden nicht funktionieren.
#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; }
Das wird es tun.
#include "stdafx.h" #include <iostream> using namespace std; int main () { cout << "hey" << endl; return 0; }
Hier ist eine großartige Antwort darauf, was der Header stdafx.h tut.
quelle
stdafx.h
tut.Schreiben Sie diesen Code, es funktioniert perfekt ..
#include "stdafx.h" #include <iostream> using namespace std; int main() { cout<<"Hello World!"; return 0; }
quelle
Ich hatte das gleiche Problem in Visual Studio C ++ 2010. Es ist einfach zu beheben. Über der Funktion main () ersetzen Sie einfach die Standard-Include-Zeilen durch die folgenden, jedoch mit dem Pfund-Symbol vor den Includes.
# include "stdafx.h" # include <iostream> using namespace std;
quelle
Das
include "stdafx.h"
ist okSie können es jedoch nur verwenden,
cout
wenn Sie es hinzugefügt habenusing namespace std
Wenn Sie den Namespace std nicht angegeben haben, müssen Sie
std::cout
statt einfach schreibencout
quelle
Ich habe das gesehen, wenn Sie verwenden
#include <iostream.h>
dann wirst du das Problem bekommen.
Wenn du benutzt
#include <iostream>
(Hinweis - ohne die .h)
dann werden Sie das erwähnte Problem nicht bekommen.
quelle
iostream
. Es ist nicht benanntiostream.h
.iostream.h
ist nicht vorhanden. So einfach ist das.Wenn Sie ein Projekt gestartet haben, für das die
#include "stdafx.h"
Zeile erforderlich ist, setzen Sie es an die erste Stelle.quelle
Der folgende Code wird mit gcc kompiliert und ordnungsgemäß für mich ausgeführt. Versuchen Sie dies zu kopieren / einzufügen und prüfen Sie, ob es funktioniert.
#include <iostream> using namespace std; int bob (int a) { cout << "hey" << endl; return 0; }; int main () { int a = 1; bob(a); return 0; }
quelle
Wenn die einzige Datei, die Sie einschließen, iostream ist und immer noch undefiniert steht, enthält iostream möglicherweise nicht das, was es soll. Ist es möglich, dass Sie eine leere Datei mit dem zufälligen Namen "iostream" in Ihrem Projekt haben?
quelle
Ich habe ähnliche Dinge gesehen, als ich die Dateierweiterung .c mit C ++ - Code verwendet habe. Ansonsten müsste ich allen in Bezug auf eine fehlerhafte Installation zustimmen. Funktioniert es, wenn Sie versuchen, das Projekt mit einer früheren Version von VS zu kompilieren? Versuchen Sie VC ++ Express 2008. Es ist kostenlos auf msdn.
quelle
Eine so dumme Lösung in meinem Fall:
// Example a #include <iostream> #include "stdafx.h"
Das obige wurde gemäß Beispiel a bestellt, als ich es so änderte, dass es Beispiel b unten ähnelt ...
// Example b #include "stdafx.h" #include <iostream>
Mein Code wurde wie ein Zauber kompiliert. Probieren Sie es aus, garantiert funktioniert es.
quelle
Ich habe VS2010, Beta 1 und Beta 2 (eine auf meiner Arbeitsmaschine und eine zu Hause) und ich habe
std
viel ohne Probleme verwendet. Versuchen Sie Folgendes zu tippen:std::
Und sehen Sie, ob Intellisense Ihnen etwas gibt. Wenn es Ihnen die üblichen Sachen gibt (
abort
,abs
,acos
, etc.), mit Ausnahmecout
, auch dann, dass durchaus ein Puzzler ist. Schauen Sie sich in diesem Fall unbedingt Ihre C ++ - Header an.Darüber hinaus möchte ich nur hinzufügen, dass Sie ein reguläres, leeres Projekt ausführen (nicht CLR, bei dem Intellisense verkrüppelt ist) und dass Sie tatsächlich mindestens einmal versucht haben , das Projekt zu erstellen . Wie bereits in einem Kommentar erwähnt, analysiert VS2010 Dateien, sobald Sie eine hinzugefügt haben
include
. es könnte sein, dass etwas am Parser klebte und es nichtcout
sofort "fand" . (In welchem Fall versuchen Sie vielleicht, VS neu zu starten?)quelle
Nimm den Code
#include <iostream> using namespace std;
Erstellen Sie aus Ihrer CPP-Datei eine Header-Datei und fügen Sie diese in die H-Datei ein. Dann füge hinzu
#include "whatever your header file is named.h"
oben in Ihrem CPP-Code. Führen Sie es dann erneut aus.
quelle
Ich hatte das gleiche Problem beim Starten eines ms c ++ 2010-Projekts von Grund auf neu - ich habe alle von ms generierten Header-Dateien entfernt und verwendet:
#include "stdafx.h" #include <iostream> using namespace std; int main() { cout << "hey" << endl; return 0; }
Ich musste einschließen,
stdafx.h
da es einen Fehler verursachte, der es nicht hatte.quelle
Bevor Sie mit diesem Programm beginnen, entfernen Sie den gesamten Code und erstellen Sie eine einfache Hallo-Welt innerhalb von main. Schließen Sie nur iostream ein und verwenden Sie den Namespace std;. Fügen Sie nach und nach etwas hinzu, um Ihr Problem zu finden.
cout << "hi" << endl;
quelle
#include <iostream> int main() { std::cout << "ok"; }
kann, ist in Ihrer C ++ - Implementierung ein Fehler aufgetreten. Welchen Compiler verwenden Sie?Sind Sie sicher, dass es als C ++ kompiliert wird? Überprüfen Sie Ihren Dateinamen (er sollte auf enden
.cpp
). Überprüfen Sie Ihre Projekteinstellungen.Es ist einfach nichts falsch mit Ihrem Programm und
cout
ist innamespace std
. Ihre Installation von VS 2010 Beta 2 ist fehlerhaft, und ich glaube nicht, dass es nur Ihre Installation ist.Ich denke, VS 2010 ist noch nicht für C ++ bereit. Das Standardprogramm "Hello, World" funktionierte in Beta 1 nicht. Ich habe gerade versucht, eine Test-Win32-Konsolenanwendung zu erstellen, und die generierte
test.cpp
Datei hatte keinemain()
Funktion.Ich habe ein sehr, sehr schlechtes Gefühl bei VS 2010.
quelle
Probieren Sie es aus, es wird funktionieren. Ich habe es in Windows XP, Visual Studio 2010 Express überprüft.
#include "stdafx.h" #include <iostream> using namespace std; void main( ) { int i = 0; cout << "Enter a number: "; cin >> i; }
quelle
main
kehrt zurückint
. Immer.Bei der Erstellung Ihres Projekts haben Sie "Vorkompilierte Header verwenden" nicht richtig eingestellt. Ändern Sie es in Eigenschaften-> C / C ++ -> vorkompilierte Header.
quelle
Verwenden Sie in Visual Studio Ihren gesamten Header-Filer unter "stdafx.h".
quelle
Fügen Sie die Standardbibliothek ein, indem Sie die folgende Zeile oben in Ihren Code einfügen:
using namespace std;
quelle
wird normalerweise im Ordner C: \ Programme \ Microsoft Visual Studio 8 \ VC \ include gespeichert. Überprüfen Sie zuerst, ob es noch da ist. Wählen Sie dann Extras + Optionen, Projekte und Lösungen, VC ++ - Verzeichnisse, wählen Sie "Dateien einschließen" in der Combobox "Verzeichnisse anzeigen für" und überprüfen Sie, ob $ (VCInstallDir) include ganz oben auf der Liste steht.
quelle
Ich bin auf diesen Fehler gestoßen, nachdem ich gerade gegen 2010 installiert und versucht hatte, ein nahezu identisches Programm zum Laufen zu bringen.
Ich habe schon einmal Vanilla C-Codierung auf Unix-Boxen durchgeführt und beschlossen, selbst ein bisschen damit zu spielen.
Das erste Programm, das ich ausprobierte, war:
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello World!"; return 0; }
Die große Sache, die Sie hier beachten sollten ... wenn Sie jemals eine C-Codierung durchgeführt haben,
int _tmain(int argc, _TCHAR* argv[])
Sieht komisch aus. es sollte sein:
int main( int argc, char ** argv )
In meinem Fall habe ich gerade das Programm geändert in:
#include <iostream> using namespace std; int main() { cout << "Hello world from VS 2010!\n"; return 0; }
Und es hat gut funktioniert.
Hinweis: Verwenden Sie STRG + F5, damit das Konsolenfenster angezeigt wird und Sie die Ergebnisse sehen können.
quelle
Einfach benutzen
printf
!Fügen Sie
stdio.h
in Ihrerstdafx.h
Header - Datei fürprintf
.quelle
Ich bin hierher gekommen, weil ich das gleiche Problem hatte, aber als ich es tat
#include "stdafx.h"
, sagte es, dass es diese Datei nicht gefunden hat.Was war der Trick für mich war :
#include <algorithm>
.Ich verwende Microsoft Visual Studio 2008.
Dies sind die Dinge, die Sie dann verwenden können, inkl. 'count': Link
quelle
In VS2017,
stdafx.h
scheint wie folgt zu ersetzenpch.h
siehe diesen Artikel ,Verwenden Sie also:
#include "pch.h" #include <iostream> using namespace std; int main() { cout << "Enter 2 numbers:" << endl;
quelle
Es war der Compiler - ich verwende jetzt Eclipse Galileo und das Programm funktioniert wie ein Wunder
quelle