C++从资料中读取string类型数据出错
C++从文件中读取string类型数据出错C/C++ codeint MaterialIDstring namedouble pridouble leftifstre
C++从文件中读取string类型数据出错
C/C++ code int MaterialID; string name; double pri; double left; ifstream mlist; mlist.open("data\\MaterialList.txt", ios::in); while(mlist >> MaterialID >> name >> pri >> left) { }
用VS2010写的,这里是读取文件内容部分,name前面的>>被标注错误,编译提示错误如下:
error C2678: 二进制“>>”: 没有找到接受“std::basic_istream<_Elem,_Traits>”类型的左操作数的运算符(或没有可接受的转换)
求解
[解决办法]输入输出流ifstream没有针对string的重载吧
简单地说,我不推荐新手使用输入输出流
原因很简单,它很聪明,新手没它聪明,总是写一些它也许能理解但写代码的新手本人不理解的代码
特别是新手总有一种喜好,就是自己发明语法,遇上这么聪明的类,自然而然的就以为“我想让它读取什么样的数据,它就能读取什么样的数据,哪怕我自己不知道这种数据应该怎么读取也无所谓”
换fopen+fclose+fread+fwrite吧