① strtok,C的壹個函數,可以壹次性完成;問題是這個函數需要復制原字符串,因為這樣會破壞字符串。如果文本文件很大,效率就會很低。並且它是線程不安全的。
②可以使用boost::tokenizer,非常方便,但是需要遵循第三方boost庫;
③也可以用pcre的正規庫,也很好用;
(4)自己寫壹個字符串STL下面是stringstream的壹個實現,它結合了std:getline()。因為妳的例子,其實回車是getline自動考慮的,定義“\ t”(tab)就行了。
# include & ltiostream & gt
# include & ltfstream & gt
# include & ltsstream & gt
使用命名空間std
int main()
{
ifstream ifs(" data . txt ");
string str((STD::istreambuf _ iterator & lt;char & gt(ifs)),STD::istreambuf _ iterator & lt;char & gt());
//cout & lt;& ltstr . c _ str()& lt;& ltendl
string stream ss(str);
字符串s;
while (getline (ss,s,' \t '))
{
cout & lt& lts & lt& ltendl
}
返回0;
}
註意:這個文件的字符是char。如果是unicode文件,用WCHAR _ T替換char..