有关函数getline( )的问题

lyh2008mxj 2005-11-20 10:01:00
在以下语句执行时:string str; getline(cin,str);

输入一字符串后,为什么要按两次回车才能显示所输入的内容?
...全文
156 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydivid 2005-11-20
  • 打赏
  • 举报
回复
因为这种用法的getline()的默认参数为三个,最后一个是从流中读取的截止符,一般默认为换行符。所以你如果没有给出第三个参数,那么就得敲两次回车。

qywyh 2005-11-20
  • 打赏
  • 举报
回复
学习!
apassion1 2005-11-20
  • 打赏
  • 举报
回复
第一次表示换行。第二次才是执行。如果你想要击一次就显示的话,变有getline()里面再加一个参数作为结束标志。如以!为结束标志则写成getline(cin,str,'!')
lyh2008mxj 2005-11-20
  • 打赏
  • 举报
回复
是这样的语句string str; getline(cin,str); cout<<str;
输入一字符串后,为什么要按两次回车才能显示所输入的内容?
csucdl 2005-11-20
  • 打赏
  • 举报
回复
是啊
SnowwhiteYqw 2005-11-20
  • 打赏
  • 举报
回复
#include <iostream>
#include <string>

using namespace std;

int main()
{
string str;
getline( cin, str, '\n' );
cout << str << endl;
system("pause");
return 0;
}
我在VC6.0里允许这程序需要两次回车才能显示,但是在Dev C++里只需要一次回车这是不是VC的bug 啊?
lxb365 2005-11-20
  • 打赏
  • 举报
回复
改为string str; getline(cin,str,'\n');就只需要按1次了,你少写了一个参数

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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