2013-03-03 15 views
41

Ho un programma C++:'cout' non è stato dichiarato in questo ambito

#include<iostream> 

int main() 
{ 
    char t = 'f'; 
    char *t1; 
    char **t2; 
    cout<<t; //this causes an error, cout was not declared in this scope 
    return 0; 
} 

g ++ test.cpp

ottengo l'errore error: 'cout' was not declared in this scope

perché?

+9

Mi chiedo quante volte questo ha chiesto qui. –

risposta

73

inserire il seguente codice prima int main():

using namespace std; 

e sarete in grado di utilizzare cout.

Ad esempio:

#include<iostream> 
using namespace std; 
int main(){ 
    char t = 'f'; 
    char *t1; 
    char **t2; 
    cout<<t;   
    return 0; 
} 

Ora prendete un attimo e leggere su ciò che è e ciò che cout sta succedendo qui: http://www.cplusplus.com/reference/iostream/cout/

+9

Tale [avviso errato] (http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice). – juanchopanza

+3

Lo so, ho fatto quella risposta 2 anni fa, ma ora so che è abbastanza buono per i principianti, perché è stupido e difficile spiegare ai novizi programmatore quale sia lo spazio dei nomi. – rafalon

+5

Non sono d'accordo. Questo è particolarmente negativo per i principianti perché non riescono a vedere le implicazioni. – juanchopanza

27

Utilizzare std::cout, dal è definito all'interno dello spazio dei nomi std. In alternativa, aggiungere una direttiva using std::cout;.

Problemi correlati