这是MSDN上对判闷getline()函数的描述:The getline function creates a string containing all of the characters from the input stream until one of the following situations occurs: 1)End of file. 2)The delimiter is encountered. 3)is.max_str elements have been extracted. 翻译一下大致就是:getline()函数会生成一个包含一串从输入流读闷笑入的字符的字符串,直到一下情况发生会导致生成的此字符串结束。1)到文件结束,2)遇到函数的定界符,3)输入达到最大限度。明显您说问的情况是正好蚂冲含对于第二中情况,此处的定界符是‘\n',getline()函数默认情况下以'\n'为输入结束符,而结束后的处理可以同样用MSDN上对此函数的描述来解释:After the function extracts an element that compares equal to delim, in which case the element is neither put back nor appended to the controlled sequence. 翻译一下大致意思是:在函数遇到和结束定界符相等的字符时函数结束,同时函数抽出定界符,此种情况下该定界符既不被放回输入流,也不被放入要生成的字符串。所以由此可以理解输入结束后的第一个回车是定界符,被确认后抛弃,而第二个才是程序执行运行时正常需要的!这么解释看楼主能理解不能,你可以这样用一下getline看看结果就知道1)getline(cin, s, ' ');2)getline(cin, s, '\n');这两个输入串后结束时敲的终止符是不同的第一个到test后面的istream是不被读入的,因为断在test后的空格处楼主也可以之输入test然后尽情的敲回车,但是它是不会停止的因为回车被当作合理字符读入了s字符串中,而第二个和楼主问的就一样了。
相关文章
-
沈易迪拜排名是多少?
2023-03-03 01:24 阅读(31925) -
美国WWE是真打还是表演性质的
2023-04-11 23:58 阅读(25136) -
我今年21岁不小心把一个中年妇女肚子搞大了! 现在很着急,请各位网友帮忙出招.
2023-09-04 06:24 阅读(17503)
1 b站直播年龄限制是多少,未满十八岁可以不
15569 阅读
2 出租车叫车电话是多少
11652 阅读
3 外交官工资有100多万吗
9000 阅读
4 淘宝买手机可靠吗 是正品吗
7257 阅读
5 深圳燃气人工客服电话
6184 阅读