2011-02-22 196 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