永发信息网

C++输入流对象问题

答案:2  悬赏:60  手机版
解决时间 2021-07-25 00:49

写了个时间类其中包含这样一个函数

Status Time::SetTime(istream io)
{
io>>hour;
io.ignore();
io>>minute;
return OK;
}

主要为了有时候从标准输入流读入,有的时候从文件输入流读入,所以写了这个函数,但是在调用过程中无法达到目的,编译没有错误,运行没有出现错误,但是就是无法赋值~请教大虾~~~

下面是调用的过程

cin>>orderType;
if (orderType!='A'&&orderType!='D'&&orderType!='E')
{
cout<<"Error in GetOrder>>wrong ordertype.code:00001"<<endl;
return ERROR;
}
cin.ignore();
cin.getline(carNumber,7);

我的输入是A,A07418,10:10
cin.ignore();
time.SetTime(std::cin);

最佳答案

cin.getline的问题,把缓冲区的数据全都读完了,改为cin.get(carNumber,7),就行了


int SetTime(istream &io)
{
int hour,minute;
io>>hour;
io.ignore();
io>>minute;
cout << "hour=" << hour <<endl;
cout << "minute=" << minute <<endl;
return 1;
}
int main(){
char orderType;
cin>>orderType;
if (orderType!='A'&&orderType!='D'&&orderType!='E')
{
cout<<"Error in GetOrder>>wrong ordertype.code:00001"<<endl;
}
cin.ignore();
char* carNumber = new char[8];
//cin.getline(carNumber,7);
cin.get(carNumber,7);
carNumber[7]='\0';
cout << carNumber << endl;



//我的输入是A,A07418,10:10
cin.ignore();
SetTime(cin);
delete carNumber;


system("pause");
}

全部回答
Status Time::SetTime(istream io) { io>>hour; io.ignore(); io>>minute; return OK; } 这个函数我这边编译不过去 改成Status Time::SetTime(istream& io)试下 另外你的目的是什么,感觉你说的很含糊- -
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
乡下人会支持2010世博会吗
口袋西游怎么炼不起妖?
为什么 我的AVA现在不 可以 玩了
电脑找不到网页怎么办,电脑找不到网页怎么办
很紧张怎么办
寻电影《沙漠玫瑰》曲子
淑女是相对于君子而言的,没有君子了还要淑女
N73的市场价是多少,谢谢
标语生活节约用水谚语,关于节约用水的搞笑语
CS的秘密?
到塔湾邮局有哪些公交车
When were you born?和 Which / What year we
麦咖啡能杀掉熊猫烧香吗?
日本的动画王者是谁?
寻仙中打什么怪会爆套装?
推荐资讯
AU有真感情么?
从对汽车一无所知,到学会汽车维修要多久
欧洲什么时候开DNF(欧服)
一个人失眠用什么方式来解决
手机上的 任我行 和R66 的问题
当你爱一个人会是什么样的反映
会计证调转:现在没担任会计了,要哪里接收
“兼”这个字念什么来着,忘了,没字典
谁能告诉我下面这个图发型属于什么
梦幻出新场景没BB爽不?
诛仙 鬼道法宝技能选择
求西班牙国家德比阿尔维斯抱住阿韦罗亚小腿的
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?