source: http://blog.sina.com.cn/s/blog_6ace931b0100ys0c.html
原文地址:C++中“在此範圍中尚未聲明”的錯誤解決
作者:teamworld
初學者在Linux中進行C++編程時會遇到“‘cout’在此範圍中尚未聲明”的錯誤。很多人會覺得很奇怪,我是嚴格按照C++文法來寫的,為什麼還會在編譯時間提示“‘cout’在此範圍中尚未聲明”的錯誤呢?下面來詳細分析一下錯誤原因,通過分析來得到問題解決辦法。
首先我們以一段代碼為例。
如果我們將這個代碼儲存為hello.cpp
在終端輸入g++ hello.cpp -o hello
編譯過很中肯定會報“‘cout’在此範圍中尚未聲明”錯誤。
錯誤原因:
#include ,不能在程式中直接使用cout/cin等,採用#include要包含命名空間std才能直接使用cout/cin,否則就要在該標頭檔中定義的函數/變數前加上std::來表示調用函數/變數的來源。
解決辦法:
方法一:在 #include 下面加上一句“using namespace std;”
#include <iostream> using namespace std;int main(void) { int i; int n=1; for(i=0;i<n;i++) { cout<<"hellon"; n++; } }
方法二:在使用cout時將cout替換為std::cout
#include <iostream> int main(void) { int i; int n=1; for(i=0;i<n;i++) { std::cout<<"hellon"; n++; } }
通過這兩種方法就可以解決Linux C++編程過程中“Cout範圍中尚未聲明”問題
如果出現gcc] undefined reference to 'std::basic_string...'問題,說明你用了gcc來編譯的,換成用g++來編譯就沒問題了。