读书人

C++从资料中读取string类型数据出错

发布时间: 2012-09-12 09:21:30 作者: rapoo

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吧

读书人网 >C++

热点推荐