我们知道从输入流中读取的定界符读,我们可以使用下面的标准的C++函数C++的iostream具有多个字节
istream& getline (char* s, streamsize n, char delim);
所述然而,我们只能提供一个字节/焦炭的分隔符。
我应该怎么做,如果我希望使用分隔符多个字节? 是否有任何我可以利用的东西,提升?
最好成绩,
林恩
我们知道从输入流中读取的定界符读,我们可以使用下面的标准的C++函数C++的iostream具有多个字节
istream& getline (char* s, streamsize n, char delim);
所述然而,我们只能提供一个字节/焦炭的分隔符。
我应该怎么做,如果我希望使用分隔符多个字节? 是否有任何我可以利用的东西,提升?
最好成绩,
林恩
我认为你可以使用cin.get()
而不是cin.getline()
。每次读取一个字符并测试是否发生分隔符。
INT主(无效){
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-18 06:17:09
@JerryCoffin是的。但只有你有时间。 – 2013-02-18 06:18:12
@JerryCoffin,@MarkGarcia,谢谢你的话!你可以给一个简单的例子使用它吗?我不太喜欢它,谢谢! – Lyn 2013-02-18 06:21:11