您的位置首页百科问答

getline函数用法实例

getline函数用法实例

这是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字符串中,而第二个和楼主问的就一样了。