2

我们知道要从输入流中读取,我们可以使用以下标准 C++ 函数

istream& getline (char* s, streamsize n, char delim );

但是我们只能提供一个字节/字符的分隔符。

如果我想使用多字节的分隔符,我应该怎么做?有什么好东西我可以利用,提升吗?

最好的,
林恩

4

1 回答 1

1

我认为您可以使用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;

}

于 2013-02-18T08:34:51.573 回答