我们知道要从输入流中读取,我们可以使用以下标准 C++ 函数
istream& getline (char* s, streamsize n, char delim );
但是我们只能提供一个字节/字符的分隔符。
如果我想使用多字节的分隔符,我应该怎么做?有什么好东西我可以利用,提升吗?
最好的,
林恩
我认为您可以使用cin.get()
而不是cin.getline()
. 每次读取一个字符,测试是否出现分隔符。
诠释主要(无效){
string str;
int length_of_delimiter = 3;
const char *delimiter = "ABC";
char temp = '0';
bool over = false;
cout<<"Enter the stream"<<endl;
temp = cin.get();
int i = 0;
while(over == false){
for(i = 0; temp == delimiter[i] && i < length_of_delimiter; i++){
str += temp;
temp = cin.get();
}
if(i == length_of_delimiter){
//chop off the delimiter
str.erase(str.end() - length_of_delimiter, str.end());
over = true;
}
else {
str += temp;
temp = cin.get();
}
}
cout<<"The stream we wanted is: "<<str<<endl;
return 0;
}