大家看看这个错误是为什么?
有如下的一段代码:
- C/C++ code
#include<iostream>#include<fstream>using namespace std;struct student{string name;int num;int age;char sex;};int main(){student stud[3];int i;ifstream infile("stud.dat",ios::binary);if(!infile){cerr<<"open error!"<<endl;abort();}for(i=0;i<3;i++)infile.read((char*)&stud[i],sizeof(stud[i]));for(i=0;i<3;i++){cout<<"NO."<<i+1<<endl;cout<<"name:"<<stud[i].name<<endl;cout<<"num:"<<stud[i].num<<endl;cout<<"age:"<<stud[i].age<<endl;cout<<"sex:"<<stud[i].sex<<endl<<endl;}return 0;}
实现的功能是从二进制文件stud.dat中读入信息并在电脑屏幕上显示,但是编译时出错如下:
没有找到接受“std::string”类型的右操作数的运算符(或没有可接受的转换)
这个错误是因为没有对《进行重载吗?
我若把name改为char型则程序可以编译但是执行后结果不对。请大家帮忙看一下,谢谢。
[解决办法]
编译错误是漏包括头文件了,加上
#include <string>
[解决办法]
string name;
用到了string,但是你没有包含相应的头文件
[解决办法]
基础要扎实噢
[解决办法]
stud.dat这个文件如果不存在,则abort();