Linux下C++编译出错原因解析

程序:
#include 
int main()
{
cout << "hello world" << endl;
}

编译出错:
$ g++ s.cpp -o s.out
s.cpp: In function `int main(int, char**)':


s.cpp:12: error: `cout' was not declared in this scope


s.cpp:12: error: `endl' was not declared in this scope



原因:


C++ 1998 要求cout and endl被调用使用'std::cout'和'std::endl'格式,或using namespace std;



修改后:


#include 


int main()


{


std::cout << "hello world" << std::endl;


}





#include 


using namespace std;


int main(int argc, char *argv[])


{


cout << "hello world" << endl;


}


编译通过。