阅读量:0
getline函数
getline
函数与cin
是相辅相成的关系。相比于cin
,getline
的优点就是在输入字符串的时候能够输入空格。而cin
则会在输入空格时自动结束输入。
cin.getline(char* s, streamsize n, char delim)
可以理解为此时getline
是cin
这个类的一个函数,所在的命名空间是std,因此,输入的时候要写成std::cin.getline()
这里的参数char* s是输入的字符串变量, n是输入字符串的字符个数(第n个补’\0’), delim
是输入终止条件,即遇到delim
所代表的字符就终止输入。
示例:
char str[10]; std::cin.getline(str,7,'a'); std::cout<<str; /*当输入为sdfazsertyg时,str会存放sdf因为我们默认当遇见a时结束*/ /*当输入bcdefghijklm时,str会存放bcdefg因为我们规定了只能存放7个字符,而第7位补'\0'。*/
getline(istream& is, string& str, char delim)
is
是标准输入流函数, str
是用来存字符的变量名, delim
是结束标志,此处作用与cin.getline()
里的相同
getline()
是string流的函数,只能用于string类型的输入操作。
cin.getline
是std流的函数,用于char*类型的输入操作。
示例:
class Solution { public: vector<string> splitWordsBySeparator(vector<string>& words, char separator) { vector<string> res; for (string &word : words) { stringstream ss(word); string sub; while (getline(ss, sub, separator)) { if (!sub.empty()) { res.push_back(sub); } } } return res; } };