主题:有个问题帮帮忙啊我新手
1109500826
[专家分:0] 发布于 2009-04-28 09:40:00
搞不动那里出错了.就是不抱错.很老火谢谢大家帮帮忙啊!!~~~
/*Filename:exam8_4.cpp*/
#include <iostream.h>
struct stud2
{
int num;
char name[20];
char sex;
float score;
};
void main()
{
struct stud2 sl={102,"woailuo ",'m',92.5},*ps;
ps=&sl;
cout<<" 学号:"<<sl.num<<"姓名 :"<<sl.name;
cout<<" 性别:"<<sl.sex<<" 分数:"<<sl.score<<endl;
cout<<" 学号:"<<ps->num<<" 姓名:"<<ps->name;
cout<<" 性别:"<<ps->sex<<"分数 :"<<ps->score<<endl;
cout<<" 学号:"<<(*ps).num<<" 姓名:"<<(*ps).name;
cout<<" 性别:"<<(*ps).sex<<"分数 :"<<(*ps).score<<endl;[em18][em18][em18][em18][em18][em18]
回复列表 (共6个回复)
沙发
星绽紫辉 [专家分:1700] 发布于 2009-04-29 10:11:00
这样修改:
=========================================================================================
#include <iostream>
using namespace std;
原因在这里:
=========================================================================================
从 Visual C++ .NET 2003 开始,移除了旧的 iostream 库。
标准 C++ 库和以前的运行时库之间的主要差异在于 iostream 库。iostream 实现的具体细节已经更改,如果想链接标准 C++ 库,可能有必要重写代码中使用 iostream 的部分。
必须移除任何包含在代码中的旧 iostream 头文件(fstream.h、iomanip.h、ios.h、iostream.h、istream.h、ostream.h、streamb.h 和 strstrea.h),并添加一个或多个新的标准 C++ iostream 头文件(<fstream>、<iomanip>、<ios>、<iosfwd>、<iostream>、<istream>、<ostream>、<sstream>、<streambuf> 和 <strstream>,所有头文件都没有 .h 扩展名)。
下表描述新的标准 C++ iostream 库不同于旧 iostream 库的行为。
在新的标准 C++ iostream 库中:
open 函数不采用第三个参数(保护参数)。
无法从文件句柄创建流。
除了几个例外,新的标准 C++ 库中的所有名称都在 std 命名空间中。有关更多信息,请参见使用 C++ 库头。
单独用 ios::out 标志无法打开 ofstream 对象。ios::out 标志必须在逻辑 OR 中和另一个 ios 枚举数组合;比如,和 ios::in 或 ios::app 组合。
因为设置了 eofbit 状态,到达文件尾后 ios::good 不再返回非零值。
除非知道当前没有设置基标志,否则 ios::setf(_IFlags) 不应和 ios::dec、ios::oct 或 ios::hex 的标志值一起使用。格式化的输入/输出函数和运算符假定只设置了一个基。改用 ios_base。例如,setf( ios_base::oct, ios_base::basefield ) 清除所有基信息并将基设置成八进制。
ios::unsetf 返回 void 而不是以前的值。
若出现错误,istream::get( char& _Rch ) 不分配给 Rch。
istream::get( char* _Pch, int _Ncount, char _Delim ) 有三点不同:
没读取任何内容时设置 failbit。
提取的字符后总是存储一个 eos(与结果无关)。
值为 -1 时 _Ncount 是一个错误。
具有无效参数的 istream::seekg 不设置 failbit。
返回类型 streampos 是具有重载运算符的类。在返回 streampos 值(比如 istream::tellg、ostream::tellp、strstreambuf::seekoff 和 strstreambuf::seekpos)的函数中,应将返回值转换成所需的类型:streamoff、fpos_t 或 mbstate_t。
strstreambuf::strstreambuf( _Falloc, _Ffree ) 中的第一个函数参数采用 size_t 参数而不是 long。
除了上述改动外,以下作为旧 iostream 库元素的函数、常数和枚举数不是新 iostream 库的元素:
filebuf、fstream ifstream 和 ofstream 的 attach 成员函数
filebuf、fstream ifstream 和 ofstream 的 fd 成员函数
filebuf::openprot
filebuf::setmode
ios::bitalloc
ios::nocreate
ios::noreplace
ios::sync_with_stdio
streambuf::out_waiting
streambuf::setbuf(相同的行为使用 rdbuf -> pubsetbuf)
板凳
myjianghe [专家分:470] 发布于 2009-04-30 14:03:00
我试了试,你的代码没有问题 啊,你出什么问题了?
3 楼
1109500826 [专家分:0] 发布于 2009-05-14 09:19:00
恩谢谢了哈多谢了还讲的这么详细,真不知道该怎么感谢!!~~[em8]
4 楼
1109500826 [专家分:0] 发布于 2009-05-14 09:20:00
呵呵怎么会没又错呢,上面都解出来了>.
5 楼
1109500826 [专家分:0] 发布于 2009-05-14 09:25:00
/*Filename:exam8_4.cpp*/
#include <iostream>
using namespace std;
{
int num;
char name[20];
char sex;
float score;
};
void main()
{
struct stud2 sl={102,"woailuo ",'m',92.5},*ps;
ps=&sl;
cout<<" 学号:"<<sl.num<<"姓名 :"<<sl.name;
cout<<" 性别:"<<sl.sex<<" 分数:"<<sl.score<<endl;
cout<<" 学号:"<<ps->num<<" 姓名:"<<ps->name;
cout<<" 性别:"<<ps->sex<<"分数 :"<<ps->score<<endl;
cout<<" 学号:"<<(*ps).num<<" 姓名:"<<(*ps).name;
cout<<" 性别:"<<(*ps).sex<<"分数 :"<<(*ps).score<<endl;
6 楼
1109500826 [专家分:0] 发布于 2009-05-14 09:26:00
还是错的啊大大些我都搞郁闷了<<
我来回复