
C++编程问题
用C++在一个比较大的程序里,cin.getline()函数不起作用,直接跳到了下一语句.我把这小段代码剪切下来单独编译运行就能成功。用C的gets()就可以。但我想用c...
用C++在一个比较大的程序里,cin.getline()函数不起作用,直接跳到了下一语句.
我把这小段代码剪切下来单独编译运行就能成功。
用C的gets()就可以。但我想用cin.geiline来尝试一下。请问这主要是什么原因?如何解决?
我已经找了很久原因都找不到,十分纳闷,为什么单独剪切出来就可以正常输入?放到较大的程序就不可以?哪位大侠帮忙解决一下感激不尽.万一解决不了,还有什么办法可以完成同样整句的输入功能吗?我是C++菜鸟一个。
大程序里cin.getline()是写在一个被调用的函数里,而不是在主函数里。 展开
我把这小段代码剪切下来单独编译运行就能成功。
用C的gets()就可以。但我想用cin.geiline来尝试一下。请问这主要是什么原因?如何解决?
我已经找了很久原因都找不到,十分纳闷,为什么单独剪切出来就可以正常输入?放到较大的程序就不可以?哪位大侠帮忙解决一下感激不尽.万一解决不了,还有什么办法可以完成同样整句的输入功能吗?我是C++菜鸟一个。
大程序里cin.getline()是写在一个被调用的函数里,而不是在主函数里。 展开
3个回答
展开全部
在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中的参数个数或参数类型有问题!
你先试试....关键没有源码,也不好说~~~~~~
<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中的参数个数或参数类型有问题!
你先试试....关键没有源码,也不好说~~~~~~
展开全部
你的是不是vc6?微软的vc6的getline有bug的
如果是你可以随便搜下vc6 getline bug 就一堆解决方法了 都是微软自己公布的 你可以改正了bug 然后再来试下
当初我也被getline弄的痛苦不堪 后面狂找资料查才发现vc6的getline是有问题的..
如果是你可以随便搜下vc6 getline bug 就一堆解决方法了 都是微软自己公布的 你可以改正了bug 然后再来试下
当初我也被getline弄的痛苦不堪 后面狂找资料查才发现vc6的getline是有问题的..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还有可能是因为键盘缓冲区中残留着‘\n’字符,所以cin.getline()只把这个字符读走了,看起来就像跳过了。你可以在前面加上一句cin.get()试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询