2016-05-22 7 views
-2

これはファイルです。書式付きテキストファイルの読み取りはC++で

R: 10 
Steve Abrew 90 80 84 76 
David Nag 93 87 90 80 
Mike Black 
Andrew Van Den 90 88 95 85 
Chris Smith 86 74 90 
Dennis Dudley 74 76 77 83 
Leo Rice 95 75 
Fred Flinstone 73 67 78 72 
Dave Light 89 71 91 89 
Hua Tran Du 81 79 80 

ファイルからこれらを読み取り、整数用の変数と別の変数を個別に作成する必要があります。しかし、ここでは...

をそれを行うことができない私のコードです:

#include <iostream> 
#include <fstream> 
#include <cstring> 

using namespace std; 

int main(int argc,char* argv[]) 
{ 
ifstream inFile; 
inFile.open(argv[1]); 

if(!inFile) 
{ 
cerr<<"Couldn't find the file"; 
return -1; 
} 

string data; 

getline(inFile,data,'\0'); 
cout<<data<<"\n"; 

return 0; 
} 

出力は現在のファイルと同じ来た..しかし、すべてが文字列データに保存されます。..しかし、今どのように私は名前を分離することができますその文字列からのint?おまいら助け:)

+0

コードをインデントして読みやすくしてください。 –

+0

ファイルの内容を書式設定してください。 Curretlyそれは明らかではありません.. – sjsam

+0

ストリームと '<<"演算子を見てください –

答えて

0

さて、私はフォーマットを得た場合

に感謝します。

どうすればいいか教えてください。 これを実行する前に、Ndeque<string>タイプのコンテナCharactersおよびdeque<deque<int>>タイプのコンテナDataというint変数を作成します。 (もちろん、あなたが#include <deque>をしなければならない) (とも#include <sstream>#include <string>

まず、入力 "R:" の部分 - >inFile >> temp;
第二に、収集されますどのように多くのデータのライン入力.->inFile >> N;
第3に、データを入力します。

for(int i = 0;i<N;i++) 
{ 
    string Fn, Ln; 
    inFile >> Fn >> Ln; 
    Characters.push_back(Fn+" "+Ln); //name 
    string A; 
    getline(inFile,A); 
    stringstream ss(A); 
    int W; 
    deque<int> TempData; 
    while(ss>>W) 
    { 
     TempData.push_back(W); 
    } 
    Data.push_back(TempData); 
} 

は今の名前はCharacters容器の中にあり、そのデータはData容器中にあります!

+0

また、3語の名前もあるので、少し書式を編集することをお勧めします。 –

+0

Bro、別のやり方が可能ですか?私はC++に新しいので、キューを取得することはできません。:( – Tom

+0

しかし、私は別のことをしました...文字配列全体を読み込みました。文字を文字列に格納し、整数をその文字配列からint? – Tom

関連する問題