2016-11-28 3 views
-1

テキストファイルには次の内容があります。 C++のテキストファイルから複数のデータ型を読む

Waterpark Avenue 3000 
Coit 1010 
Synergy Park 9119 
Joaquin 1980 
Richardson 2413 

は、私は出力できsetw使用して別の欄に詳細()演算子、このような方法でファイルを読むことをお勧めします。 私がここで直面している問題は、いくつかの行には2つの名前があり、他の行にはただ1つしかありません。私はそれを回避する方法を見つけることができません。

+0

これが役立つかどうかを確認してください:http://stackoverflow.com/questions/23047052/why-does-reading-a-record-struct-fields-from-stdistream-fail-and-how-can-i-fi –

答えて

2

おそらく、行全体を文字列に読み込むことから始めます。次に、文字列の右端から始まる最初の非数字を検索します。あるいは、文字列の右端から始まる最初の空白文字を検索することもできます(例では2つの文字は同等です)。

いずれにせよ、その点を見つけたら、最初からそこまでの文字列を1つ作成し、そこから最後まで文字列を作成することができます。

+0

右から最初の空白を検索し、新しい文字列を作成するためのサンプルコードを教えてください。 問題は、私が授業で教えてきたものを使用することに制限されていますが、彼女はちょうど文字列かファイルの番号のいずれかを読むことをカバーしました。 –

+0

@AshwinNishad便利な標準機能は['find_last_of'](http://en.cppreference.com/w/cpp/string/basic_string/find_last_of)、[' substr'](http://en.cppreference.com/ cpp/string/basic_string/substr)、['isdigit'](http://en.cppreference.com/w/cpp/string/byte/isdigit)編集:および[' getline'](http: /en.cppreference.com/w/cpp/string/basic_string/getline)。 – user4581301

+0

クラスプロジェクト用で、特定のものを使用できない場合、いつもforループに戻り、最後から文字列をスキャンできます。 – Donnie

関連する問題