cin一个string类型,怎么用cin.get()暂停不下来

dir541541 2009-05-31 04:27:30

#include <iostream>
#include <string>
using namespace std;

int main()
{
string s1;
cin>>s1;
cout<<s1;
//cout.flush();
cin.get();
//system("pause");
return 0;
}

这个是不是cin流里面带了回车引起的,但我刷新流也不起作用.
但system("pause");可以暂停.
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dir541541 2009-05-31
  • 打赏
  • 举报
回复
感谢各位!
liliangbao 2009-05-31
  • 打赏
  • 举报
回复
cin.get();//是因为输出字符串的时候你输入了回车,而get()就读取了该回车符,所以停不下来
//当加上fflush(stdin);时就将缓冲区的回车符清除了,所以等待你的输入而停了下来~
风老二 2009-05-31
  • 打赏
  • 举报
回复
cin.get()是取流中的一个字符
而cin>>sl;在输入时是以回车结束的,同时回车还保留在缓冲区里
这时当你cin.get()时,因为缓冲区不为空,就直接读了回车
你可以使用cin.sync()来清空流
dir541541 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lingyin55 的回复:]
fflush(stdin);
[/Quote]
这个可以.

这是什么原因引起的呢?
是不是因为流的问题?
w0911h 2009-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lingyin55 的回复:]
fflush(stdin);
[/Quote]
up
lingyin55 2009-05-31
  • 打赏
  • 举报
回复
或者试试
cout << flush;
lingyin55 2009-05-31
  • 打赏
  • 举报
回复
fflush(stdin);

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧