一直用c比较习惯,最近开始学C++,一开始就遇到了问题。如下的简单程序,string的使用。
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
string str;
cin >> str;
for (auto c : str)
cout << c << endl;
}
VS提示错误如下:
错误 1 error C2679: 二进制“>>”: 没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)c:\users\likai\documents\visual studio 2013\projects\容器\容器\源.cpp71容器2IntelliSense: 没有与这些操作数匹配的 ">>" 运算符
操作数类型为: std::istream >> std::stringc:\Users\likai\Documents\Visual Studio 2013\Projects\容器\容器\源.cpp76容器
仔细查看后,是自己将C中的string,h头文件在C++中使用,在C++中,string和string.h文件可以同时存在,string.h是C中的头文件。而在C++中误认为可行,导致运算符对>>对string不能辨别。所以应在C++中避免包括C标准库中的.h文件。
本文探讨了在C++中使用string时遇到的问题,特别是与C标准库中的string.h头文件冲突的情况,并提供了相应的解决方案。
4073

被折叠的 条评论
为什么被折叠?



