読み取るテキスト ファイルがありますが、(意図的に) 整形されていません。
データを構造体に並べ替える必要があり、データ型が異なるため、最初にそれらを配列に並べ替えて、順序に基づいて構造体に並べ替えることができます。行を取得するコードを作成し、スペースがあるかどうかをテストし、スペースがある場合は、区切り文字として「 」を使用して再度スキャンします。そうでない場合は、文字列を配列に格納するだけです。
コードは次のとおりです。
int nextw(ifstream &file, string array[]){
string line;
string token;
stringstream iss;
size_t foundspace;
int i = 0;
while(getline(file, line)){
iss << line;
foundspace = line.find(" ");
if(foundspace != string::npos){
while(getline(iss, token, ' ')){
array[i++] = token;
}
}
else
array[i++] = line;
}
return i;
}
配列のカウントを返します。
問題は、データの行をスキップすることです。たとえば、私は持っています:
data data data data data
data
data
data
data
data
skipped_data skipped_data
data
data
etc...
スペースで区切られた 2 ワードのデータの 1 行だけがスキップされます。その行は、その行が単一の文字列であるかのように処理されていません。配列にまったく含まれていません。
編集:コードを追加