boost::split を使用してデータ ファイルを解析しています。データ ファイルには、次のような行が含まれています。
data.txt
1:1~15 ASTKGPSVFPLAPSS SVFPLAPSS -12.6 98.3
項目間の空白はタブです。上記の行を分割する必要があるコードは次のとおりです。
std::string buf;
/*Assign the line from the file to buf*/
std::vector<std::string> dataLine;
boost::split( dataLine, buf , boost::is_any_of("\t "), boost::token_compress_on); //Split data line
cout << dataLine.size() << endl;
上記のコード行では、5 の出力を取得する必要がありますが、6 を取得します。ドキュメントを読み込もうとしましたが、この解決策は、私が望むことを行う必要があるように見えます。明らかに何かが欠けています。ありがとう!
編集: dataLine で次のように forloop を実行すると、次の結果が得られます。
cout << "****" << endl;
for(int i = 0 ; i < dataLine.size() ; i ++) cout << dataLine[i] << endl;
cout << "****" << endl;
****
1:1~15
ASTKGPSVFPLAPSS
SVFPLAPSS
-12.6
98.3
****