抛砖引玉
登录 | 论坛导航 -> 华新鲜事 -> 求学狮城 | 本帖共有 3 楼,分 1 页, 当前显示第 1 页 : 本帖树形列表 : 刷新 : 返回上一页
<<始页  [1]  末页>>
作者:kikicoco (等级:2 - 初出茅庐,发帖:545) 发表:2003-05-12 18:10:14  楼主  关注此帖
问一个关于c++ input 的问题。。problem: input three lines: first line has a number second line have two numbers third line has a string of characters( the number of characters is not more than 1000) my code: # include int main(void){ int a; cin>>a; couty; cout (more...)
抛砖引玉
我先去掉了前面两个正常运行的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,结果正常。

有不对之处,盼指正啊!
Put your OWN COOL signature here!
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:kikicoco (等级:2 - 初出茅庐,发帖:545) 发表:2003-05-12 18:27:12  2楼
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.
why fflush(stdio) cannot work??
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
作者:kikicoco (等级:2 - 初出茅庐,发帖:545) 发表:2003-05-12 19:06:29  3楼
Hehe,fflush(stdio) is a C style function. It is not suitable for C++. :)
还以为能兼容...
原来如此阿
明天就要考C++了...
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!原文 / 传统版 / WAP版所有回复从这里展开收起列表
论坛导航 -> 华新鲜事 -> 求学狮城 | 返回上一页 | 本主题共有 3 篇文章,分 1 页, 当前显示第 1 页 | 回到顶部
<<始页  [1]  末页>>

请登录后回复:帐号   密码