fout C2065: ‘cout’: niet-aangegeven identifier

Ik ben bezig met het ‘stuurprogramma’-gedeelte van mijn programmeeropdracht en ik krijg steeds deze absurde foutmelding:

fout C2065: ‘cout’: niet-aangegeven identifier

Ik heb zelfs geprobeerd de std::coutte gebruiken, maar ik krijg een andere foutmelding die zegt: IntelliSense: namespace “std” has no member “cout”wanneer ik dat wel heb gedaan verklaard met namespace std, inclusief iostream+ ik heb zelfs geprobeerd ostream

te gebruiken

Ik weet dat het een standaard noob-vraag is, maar dit heeft me stomverbaasd en ik ben een beginneling (wat betekent: ik heb eerder geprogrammeerd…)

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

Ik gebruik Visual Studio 2010 en gebruik Windows 7. Alle .h-bestanden hebben “using namespace std” en bevatten iostream en ostream.


Antwoord 1, autoriteit 100%

In Visual Studio moet u #include "stdafx.h"en de eerste include van het cpp-bestand zijn.Bijvoorbeeld:

Deze zullen nietwerken.

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

Dit is voldoende.

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

Hier is een goed antwoord op wat de stdafx.h-header doet.


Antwoord 2, autoriteit 73%

schrijf deze code, het werkt perfect..

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

Antwoord 3, autoriteit 17%

Ik had hetzelfde probleem met Visual Studio C++ 2010. Het is eenvoudig op te lossen. Boven de functie main() vervangt u gewoon de standaard include-regels door deze hieronder, maar met het hekje voor de include.

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

Antwoord 4, autoriteit 15%

De include "stdafx.h"is ok

Maar u kunt coutniet gebruiken, tenzij u using namespace stdheeft opgenomen

Als u de naamruimte std niet heeft opgenomen, moet u std::coutschrijven in plaats van eenvoudig cout


Antwoord 5, autoriteit 6%

Ik heb gezien dat als je

#include <iostream.h>

dan krijg je het probleem.

Als u

. gebruikt

#include <iostream>  

(let op – zonder de .h)

dan krijgt u het door u genoemde probleem niet.


Antwoord 6, autoriteit 6%

Als je een project bent begonnen waarvoor de regel #include "stdafx.h"vereist is, zet dit dan op de eerste plaats.


Antwoord 7, autoriteit 5%

De onderstaande code compileert en werkt correct voor mij met gcc. Probeer dit te kopiëren/plakken en kijk of het werkt.

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

8, Autoriteit 5%

Als het enige bestand dat u opneemt is iOStream en het nog steeds niet gedefinieerd zegt, dan bevat ik misschien niet dat Iostream niet bevat wat het hoort. Is het mogelijk dat u een leeg bestand hebt dat toevallig “IOSTREAM” in uw project wordt genoemd?


9, Autoriteit 5%

Ik heb soortgelijke dingen gezien wanneer ik de .c-bestandsextensie gebruikte met C++ -code. Anders dan dat, zou ik het eens zijn met iedereen over een buggy-installatie. Werkt het als u het project probeert te compileren met een eerdere versie van vs? Probeer VC++ Express 2008. Het is gratis op MSDN.


10, Autoriteit 5%

Zo’n dwaze oplossing in mijn geval:

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

Het bovenstaande werd geded volgens voorbeeld A, toen ik het heeft gewijzigd om lijken op voorbeeld B hieronder …

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

Mijn code verzamelde als een charme. Probeer het, gegarandeerd om te werken.


11, Autoriteit 3%

Neem de code

#include <iostream>
using namespace std;

UIT UW .CPP-bestand, maak een koptekstbestand en plaats dit in het .h-bestand. Voeg dan

toe

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

Aan de bovenkant van uw .cpp-code. Voer het vervolgens opnieuw uit.


12, Autoriteit 3%

Ik had hetzelfde probleem bij het starten van een MS C++ 2010-project helemaal opnieuw – ik heb alle header-bestanden verwijderd die zijn gegenereerd door MS en maar gebruikt:

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

Ik moest stdafx.hopnemen, omdat deze een fout heeft gemaakt die het niet heeft ingeschakeld.


13, Autoriteit 3%

Voordat u begint met dit programma, ga dan van alle code af en doe een eenvoudige Hello World in Main. Omvat alleen iOStream en het gebruik van NameSpace Std;.
Voeg het beetje bij beetje toe om uw probleem te vinden.

cout << "hi" << endl;

Antwoord 14, autoriteit 2%

Weet je zeker dat het compileert als C++? Controleer uw bestandsnaam (deze moet eindigen op .cpp). Controleer uw projectinstellingen.

Er is gewoon niets mis met je programma, en coutstaat in namespace std. Uw installatie van VS 2010 Beta 2 is defect en ik denk niet dat het alleen uw installatie is.

Ik denk dat VS 2010 nog niet klaar is voor C++. Het standaard “Hello, World”-programma werkte niet in Beta 1. Ik heb net geprobeerd een test Win32-consoletoepassing te maken en het gegenereerde test.cpp-bestand had geen main()functie.

Ik heb een heel, heel slecht gevoel over VS 2010.


Antwoord 15, autoriteit 2%

Probeer het, het zal werken. Ik heb het gecontroleerd in 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;
}

Antwoord 16, autoriteit 2%

Toen u uw project maakte, had u ‘voorgecompileerde headers gebruiken’ niet correct ingesteld. Wijzig het in eigenschappen->C/C++->voorgecompileerde headers.


Antwoord 17, autoriteit 2%

Gebruik in Visual studio al je header-files onder “stdafx.h”.


Antwoord 18, autoriteit 2%

Gebruik gewoon printf!

Voeg stdio.htoe aan uw stdafx.hheaderbestand voor printf.


Antwoord 19, autoriteit 2%

Voeg de std-bibliotheek toe door de volgende regel bovenaan uw code in te voegen:

using namespace std;

Antwoord 20

wordt normaal gesproken opgeslagen in de map C:\Program Files\Microsoft Visual Studio 8\VC\include. Controleer eerst of het er nog is. Kies dan Tools + Options, Projects and Solutions, VC++ Directories, kies “Include files” in de “Show Directories for” combobox en controleer nogmaals of $(VCInstallDir)include bovenaan de lijst staat.


Antwoord 21

Ik kwam deze fout tegen nadat ik net vs 2010 had geïnstalleerd en probeerde een bijna identiek programma te laten werken.

Ik heb eerder vanilla C-codering op unix-achtige dozen gedaan, besloot dat ik hier zelf een beetje mee zou spelen.

Het eerste programma dat ik probeerde was:

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

Het belangrijkste om hier op te merken… als je ooit C-codering hebt gedaan,

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

Ziet er raar uit. het zou moeten zijn:

int main( int argc, char ** argv )

In mijn geval heb ik het programma zojuist gewijzigd in:

#include <iostream>
using namespace std;
int main()
{
     cout << "Hello world from  VS 2010!\n";
     return 0;
}

En het werkte prima.

Opmerking: gebruik CTRL + F5 zodat het consolevenster blijft hangen zodat u de resultaten kunt zien.


Antwoord 22

Ik kwam hier omdat ik hetzelfde probleem had, maar toen ik #include "stdafx.h"deed, zei het dat het dat bestand niet had gevonden.
Wat deed de truc voor mij was: #include <algorithm>.
Ik gebruik Microsoft Visual Studio 2008.
Dit zijn de dingen die je dan kunt gebruiken, incl. ‘count’: Link


Antwoord 23

In VS2017 lijkt stdafx.hte zijn vervangen door pch.hzie dit artikel,

dus gebruik:

#include "pch.h"
#include <iostream>
using namespace std;
int main() {
    cout << "Enter 2 numbers:" << endl;

Antwoord 24

Heb dit probleem gehad, wanneer headerbestanden gedeclareerd “met namespace std;”, verwarrend lijken voor de GNU-compiler;
hoe dan ook is een slechte stijl!

Oplossing was het leveren van std::cout … in headers en het verplaatsen van “met namespace std” naar het implementatiebestand.


Antwoord 25


Het was de compiler – ik gebruik nu Eclipse Galileo en het programma werkt als een wonder


Other episodes