當我嘗試執行該程序時,輸出按照預期在第一次迭代時發生。但對於第二次迭代,出不來如預期...substr在C++中的問題
int main(){
string insertBuffer;
string valSep;
valSep = ":";
string configParamSep = "\r\n";
int configParamSepSize = 2;
string configParam;
string::size_type mCPos = 0;
string::size_type mCBeginPos = 0;
int finished = 0;
string one = "hai: yes";
string two = "tension: no";
insertBuffer = one + "\r\n" + two + "\r\n";
cout<<"OUTPUT:"<<"\n";
while (!finished){
if(!(mCBeginPos >= insertBuffer.length()) && ((mCPos = insertBuffer.find(valSep,mCBeginPos)) != string::npos)){
configParam = insertBuffer.substr(mCBeginPos,mCPos);
}else{
finished = 1;
break;
}
cout<<configParam<<"\n";
mCBeginPos = mCBeginPos + insertBuffer.find(configParamSep,mCBeginPos) + configParamSepSize;
}
return 0;
}
OUTPUT:
hai
tension: no
但預計outpu是: -
hai
tension
任何線索,爲什麼發生這種情況?