Yes, it is caused by the return character.
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 2 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:魅力十足 (等级:2 - 初出茅庐,发帖:15) 发表:2003-05-12 18:25:19  楼主  关注此帖
抛砖引玉我先去掉了前面两个正常运行的fragment,单独测试最后一个,程序正常。因此怀疑是standard in部分的问题。原因是上面输入1,2的以后有个enter,这个'\n'被存在了standard input stream里面,因此getline首先search到的是这个enter,也就是说end of line,自然不会继续读取input了。 为了验证这个猜想,我把getline的parameter改成了(str,100,' '),也就是说用space来结束,程序正常。 遗憾的是用c里面的fflush(stdin)没有用,不知道是不是VC++的问题,那位在unix上面试试看? 另外,我改成cin>>str,结果正常。 有不对之处,盼指正啊!
Yes, it is caused by the return character.
To ignore the return character, you can add the following line in you code before input.

cin.ignore();

This line is to remove the return character from the std input stream.

I happened to have tried this today.

Any comment is welcome.
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:魅力十足 (等级:2 - 初出茅庐,发帖:15) 发表:2003-05-12 19:03:58  2楼
why fflush(stdio) cannot work??
Hehe,
fflush(stdio) is a C style function. It is not suitable for C++.

:)
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
论坛导航 -> 华新鲜事 -> 求学狮城 | 返回上一页 | 本主题共有 2 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码