社区
C++ 语言
帖子详情
问一个低级的问题
chuan7461
2010-11-04 05:41:02
在c++中,当我使用getline(cin,str);cout<<str;时,在控制台上输入一个字符串以后要按两次回车,才会输出str的内容;我想问的是:是不是getline函数把第一个回车当成一个字符读入了,作为他的结束符,系统把第二个回车当成执行程序的命令了?
请高手们指点下。。。。3Q!!
...全文
107
13
打赏
收藏
问一个低级的问题
在c++中,当我使用getline(cin,str);cout<<str;时,在控制台上输入一个字符串以后要按两次回车,才会输出str的内容;我想问的是:是不是getline函数把第一个回车当成一个字符读入了,作为他的结束符,系统把第二个回车当成执行程序的命令了? 请高手们指点下。。。。3Q!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chuan7461
2010-11-05
打赏
举报
回复
我用的是vc6.0,貌似都没怎么解决好。。。。。
jikeyuan1
2010-11-04
打赏
举报
回复
不知道LZ是什么编译器啊 我的C++2008没有LZ 的问题 LZ 还是换编译器吧
cin.clear()是个好习惯 还有LZ 的问题好像很多人都有
chuan7461
2010-11-04
打赏
举报
回复
源代码是这样的:
#include<iostream>
#include<string>
using namespace std;
int main(){
string str;
getline(cin,str);
//cin.clear();
cout<<str<<endl;
return 0;
}
中间那个cin.clear();加上和没加上结果都一样;都需要两次回车才可以~~~~这是为什么呀???
歧路逍遥
2010-11-04
打赏
举报
回复
7楼正解!在原代码上加上cin.clear() 函数清空键盘缓冲区或者用更新马上就可以看到输出的!
wokonglinglude
2010-11-04
打赏
举报
回复
我怎么没出现你说的那种 情况 你帖下你的代码
wokonglinglude
2010-11-04
打赏
举报
回复
[Quote=引用 6 楼 chenhui880412 的回复:]
我运行没有出现你说的这个问题啊
[/Quote]我只是猜的,估计错了,我运行下,共同学习。
tangyf2009
2010-11-04
打赏
举报
回复
请及时调用cin.clear() 函数清空键盘缓冲区
i_Seven_
2010-11-04
打赏
举报
回复
我运行没有出现你说的这个问题啊
tangyf2009
2010-11-04
打赏
举报
回复
清空键盘缓冲区 然后键盘输入到键盘缓冲区 最后在键盘缓冲区查找特定字符,终止条件是找到该字符或为NULL ,删除 类似于文件流中的fflush
wokonglinglude
2010-11-04
打赏
举报
回复
等待的是你的\n 你试着把你输入的字符加上\n 看看还用第二个回车吗
wokonglinglude
2010-11-04
打赏
举报
回复
我认为 你输入字符串的第一个回车是执行cin>> 输入的是字符
第二个还是cin>> 此时输入的是\n
chuan7461
2010-11-04
打赏
举报
回复
那也就是说我说对了?
wokonglinglude
2010-11-04
打赏
举报
回复
getline 顾名思义 是获取一整行的字符串 遇到换行\n结束
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章