0

リダイレクトされたファイルを入力として受け取るプログラムに取り組んでいます。たとえば、私のプログラムがfooと呼ばれる場合、プログラムを。で呼び出します./foo < input.txt。プログラムで実行しているファイルは、最初の行が1つの整数、2番目の行が2つの整数でフォーマットされているはずです。だから何かのような

3
1 8

最初の行では無視する必要がありますが、一部のファイルには無関係な文字が含まれていることがわかりました。何かのようなもの

3 t
1 8

私はただ行うだけでデータを読み込んでいましcin >> var >> var 2 >> var3;たが、その余分なtがミックスに投入されると、すべてが台無しになります。この問題を回避する最良の方法は何でしょうか?最初の変数をcinした後、残りの行をスキップするように指示する方法はありますか?または、getline関数を使用して、それを何らかの方法で解析しますか?ありがとう。

4

2 に答える 2

1

ファイルの形式が

[number] garbage
[number] [number] garbage

そして、数字が常に行の正しい位置にあることを知っているので、私はstd::getline()各行を読み取ってから、読み取った各行から予想される整数の数を読み取ろうとします。

于 2010-09-27T15:36:55.530 に答える
1

はい、明らかな方法はstd::getline、テキストの行を読み取り、std::stringそこから取得したものを使用してを初期化しstd::istringstream、その行から正しい数の項目を読み取り、必要に応じて繰り返すことです。

于 2010-09-27T15:37:25.203 に答える