2014-09-03 57 views
-1

此代码的工作对我来说:是否需要在C++中使用字符串<iostream>?

#include <string> 
#include <iostream> 
int main() 
{ 
    std::string s; 
    s = "hello world"; 
    cout << s; 
    return 0; 
} 

但是这一次没有:

#include <string> 
int main() 
{ 
    string s; 
    s = "hello world"; 
    return 0; 
} 

是对包括<iostream>需要还有<string>一个?

我正在使用Eclipse CDT IDE。

+0

您需要'string'前的'std ::',而不是''。虽然我很怀疑第一个实际编译的,因为它应该抱怨'cout'之前缺少'std ::'。 – 2014-09-03 22:47:47

+0

std :: string ...我无法弄清楚为什么你在第一个例子中记住它,但在第二个例子中忘了它。 – MsrButterfly 2014-09-03 22:50:22

+0

是的,我刚刚意识到这一点。没想到同时在两个不同的“库”中使用相同的命名空间。 cout的事情是因为我复制粘贴代码并修改它看起来像我的,但错过了那个std。 – 2014-09-03 22:51:35

回答

1

Iostream不需要使用字符串。你在第二个例子中缺少使用命名空间std(或者使用std ::前缀),这就是为什么它不起作用。

+0

我非常想动手这个建议使用命名空间std monstrosity。 – 2014-09-03 22:51:26

相关问题