2011-02-22 133 views
1

不能編譯這樣簡單的東西,但是當我將變量類型從 字符串更改爲int時,它編譯並運行良好。任何想法爲什麼發生這種情況?輸入字符串

#include <iostream> 
using namespace std; 

void main() 
{ 
    string x; 
    cin>>x; 

} 
+1

「它不會編譯」就像你可以得到的那樣不具有說服力。 *爲什麼*不編譯?如果你得到一個錯誤,它是什麼? – 2011-02-22 21:42:58

回答

1

您需要:

#include <string> 

要獲得的std :: string在您的應用程序。

+0

很感謝。我認爲「使用命名空間標準」就足夠了。爲什麼不是? – user620189 2011-02-22 21:46:44

+0

因爲「using namespace std;」僅將std名稱空間中的* defined *符號帶入全局名稱空間。如果不包含標題,那麼符號「字符串」在任何地方都沒有定義。一旦你包含了頭文件,就定義了頭文件,並且如果你有正確的使用語句,你可以引用符號爲std :: string或者字符串。 – 2011-02-22 21:51:02

+0

明白了。非常感謝。 – user620189 2011-02-22 21:53:30