读书人

字符串流对象的一个小程序报错,该如何

发布时间: 2012-10-05 15:34:34 作者: rapoo

字符串流对象的一个小程序报错
代码如下所示:

C/C++ code
#include<strstream>#include<iostream>using namespace std;struct student{int num;char name[20];float score;}int main(){student stud[3]={1001,"li",78,1002,"wang",89.5,1004,"fun",90};char c[50];ostrstream strout(c,30);for(int i=0;i<3;i++)strout<<stud[i].num<<stud[i].name<<stud[i].score;strout<<ends;cout<<"array c:"<<c<<endl;}

编译时报错如下:
error C2628: “student”后面接“int”是非法的(是否忘记了“;”?)
error C3874: “main”的返回类型应为“int”而非“student”
这个错误很少见,它怎么就要求返回值应该是student 类型呢?按它说的修改就更不对了。大家看看是什么地方错了,谢谢。

[解决办法]
C/C++ code
#include<strstream>#include<iostream>using namespace std;struct student{int num;char name[20];float score;}//1;int main(){//2student stud[3]={{1001,"li",78},{1002,"wang",89.5},{1004,"fun",90}};char c[50];ostrstream strout(c,30);for(int i=0;i<3;i++)strout<<stud[i].num<<stud[i].name<<stud[i].score;strout<<ends;cout<<"array c:"<<c<<endl;//3return 0;}
[解决办法]
struct student
{int num;
char name[20];
float score;
} //这里掉了分号!!!注意怎么定义结构体的。。。

还有main函数 你没返回值。。。加一句 return 0;
student stud[3]={1001,"li",78,1002,"wang",89.5,1004,"fun",90};
char c[50];
ostrstream strout(c,30);
for(int i=0;i<3;i++)
strout<<stud[i].num<<stud[i].name<<stud[i].score;
strout<<ends;
cout<<"array c:"<<c<<endl;
return 0;

读书人网 >C++

热点推荐