3

したがって、次のような sscanf を使用して、文字列を他の変数に分割するコードがいくつかあります。

if(sscanf(input_line.c_str(), "%s %s %lf %lf %lf", &string1, &string2, &point1, &point2, &point3) != 5) {
    //does stuff
    throw;
}

sscanf の戻り値を使用して、入力文字列を検証します。

私は使うだろう

istringstream ss(input_line);
ss >> string1 >> string2 >> point1 >> point2 >> point3;
if( ??????? ){
    //does stuff
    throw;
}

しかし、正確に 5 つの項目が入力されているかどうかを確認する方法がわかりません。私は char 配列が嫌いなので、従来の C コードを取り除きたいのですが、エラー チェックを失いたくないのです。この istringstream コードを適応させるか、まったく異なる C++ スタイルのコードを使用して char 配列を取り除き、既存の機能を維持するためのアドバイスをいただければ幸いです。

前もって感謝します、

マックス

4

1 に答える 1