2012-03-11 12 views
0

ファイルには、各行に名前のペアがあります。このように:C++ ifstream文字列

ジョン・デイヴ

アントワーヌ・ゲルダ

サラ数学

のように...私は何をしたいのか

は、1つの文字列にペアを出力することです。このように:

string pairs[100]; 
ifstream inFile("duom.txt"); 
int n; //how many pairs 

inFile >> n; 
for(int i=1;i<=n;i++){ 
    inFile >> pairs[i]; 
} 

これはスペース上で反応するため、これは機能しません。

getline(inFile,pairs[i]); 

は、コードをスキップしても受け入れられません。

私の質問です:これらの2つの名前を1つの文字列に読み込む可能性はありますか?

+0

[ifstreamから文字列変数に行を読み込む](http://stackoverflow.com/questions/6663131/reading-a-line-from-ifstream-into-a-string-variable) –

答えて

3

問題はgetl​​ineではありませんが、これはあなたのタスクでは問題ありませんが、インデックス作成には適しています。 Kerrek SBが述べたように、バグがあるかもしれません:あなたは0

for(int i=0;i < n;i++){ 
    getline(inFile, pairs[i]); 
} 

編集から開始する必要があります。 inFile >> nの後に改行をスキップする必要があります。ダミーを追加すると、getline(inFile, pairs[0]);を取り除くことができます。

+2

しかし、 'getline'と' >> 'を混在させるときは注意が必要です。 –

+0

ダミーを追加しても問題ありません!ありがとう – RnD