2

2 つのテキスト ファイルin.txtout.txt.

in.txt:

abc      one    2    3    4
         two    3    4    two    twenty
         three  3    20   8
adbc     two    4    28   3      thirty

行ごとに読み込んで、必要に応じて操作するにはどうすればよいですか? 任意の行で、最初の列 (この例では "abc" と "adbc") にテキストがあるかどうか、2 列目、3 列目など、その行が終わるまで確認できますか? 次に、これらの操作に基づいて、out.txt?

たとえば、行に 6 番目の列があり (6 番目の列がある場合)、「20」と表示されている場合、out.txt「Hello」と出力されます。

また

2 番目の列が「3」の場合、次の 3 つの数字を追加します...

4

2 に答える 2

0

私は最良の方法について知りませんが、ここに1つの方法があります:

ファイルを読み込み、strtokを使用して、区切り文字で分割されたファイルを解析します。(その後、strtokを再度使用して、空白で分割して読み取ることができます)

http://www.cplusplus.com/reference/cstring/strtok/

于 2013-01-22T03:45:23.787 に答える
0

strtok はまだ仕事を成し遂げることができると思います。スペースで始まる行に基づいて、2 つの異なるパスをたどるだけです。

擬似コード:

while (line = readline()) {
    if (line[0] == ' ') { // you can check for multiple spaces if necessary.
        // If line begins with empty first column
        tokenize_handle_normal(line);
    } else {
        // If line begins with string in the first column
        tokenize_handle_special(line); // Call tokenize_handle_normal(line) after parsing the first column
    }
}
于 2013-01-22T09:36:18.467 に答える