函数原型:
istream& getline ( istream &is , string &str , char delim );
istream& getline ( istream& , string& );
参数:
is 进行读入操作的输入流
str 存储读入的内容
delim 终结符
返回值:
与参数is是一样的
折叠功能:
将输入流is中读到的字符存入str中,直到遇到终结符delim才结束。对于第一个函数delim是可以由用户自己定义的终结符;对于第二个函数delim默认为 '\n'(换行符)。
函数在输入流is中遇到文件结束符(EOF)或者在读入字符的过程中遇到错误都会结束。
在遇到终结符delim后,delim会被丢弃,不存入str中。在下次读入操作时,将在delim的下个字符开始读入。
折叠
#include<string>//getline包含在string头文件里
#include<iostream>
using namespace std;
int main()
{
string str;
getline(cin,str,'#');
char c=getchar();
cout<<str<<' '<<c<<endl;
return 0;
}
输入为:aa#b
输出为:aa b
再举例:
操作1:
这里输入流实际上只读入了Nice to meet you!,#后面的Hello!并没有存放到line中(仍停留在输入缓冲区里)。
而且这里把终止符设为#,你输入的时候就算输入几个回车换行也没关系,输入流照样会读入,譬如:
操作2:
这里,输入中的换行照样被读入到输入流中并且输出了。
(“再举例”部分的源代码在visual studio 中编译通过,操作1、2也是在该环境下进行的。)
注意折叠