C++编程问题

用C++在一个比较大的程序里,cin.getline()函数不起作用,直接跳到了下一语句.我把这小段代码剪切下来单独编译运行就能成功。用C的gets()就可以。但我想用c... 用C++在一个比较大的程序里,cin.getline()函数不起作用,直接跳到了下一语句.
我把这小段代码剪切下来单独编译运行就能成功。
用C的gets()就可以。但我想用cin.geiline来尝试一下。请问这主要是什么原因?如何解决?
我已经找了很久原因都找不到,十分纳闷,为什么单独剪切出来就可以正常输入?放到较大的程序就不可以?哪位大侠帮忙解决一下感激不尽.万一解决不了,还有什么办法可以完成同样整句的输入功能吗?我是C++菜鸟一个。
大程序里cin.getline()是写在一个被调用的函数里,而不是在主函数里。
展开
 我来答
q嘿仔
2009-05-31 · TA获得超过2879个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:186万
展开全部
在C++中getline()定义于<iostream><string>两个头文件中:
<iostream>中有对getline进行了重载,有两个getline函数:
1)getline(s, num);
2)getline(s, num, t);
如果写上返回值:(std 中的函数原型prototype)
1)istream& istream::getline(char* str, streamsize count);
2)istream& istrea::getline(char* str, streamsize count, char delim);
你程序之所以出错可能是因为你在getline中的参数个数或参数类型有问题!
你先试试....关键没有源码,也不好说~~~~~~
百度网友28c76aef1
2009-06-02 · TA获得超过283个赞
知道小有建树答主
回答量:104
采纳率:0%
帮助的人:105万
展开全部
你的是不是vc6?微软的vc6的getline有bug的

如果是你可以随便搜下vc6 getline bug 就一堆解决方法了 都是微软自己公布的 你可以改正了bug 然后再来试下

当初我也被getline弄的痛苦不堪 后面狂找资料查才发现vc6的getline是有问题的..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伟应影N
2009-05-31 · 超过12用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:32万
展开全部
还有可能是因为键盘缓冲区中残留着‘\n’字符,所以cin.getline()只把这个字符读走了,看起来就像跳过了。你可以在前面加上一句cin.get()试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式