2016-05-22 6 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

Хорошо, я получил формат.

Я могу вам сказать, как это сделать. Перед этим сделайте переменную int, которая называется N, и deque<string> тип контейнера Characters и контейнер deque<deque<int>>Data. (Конечно, вы должны сделать #include <deque>) (а также #include <sstream> и #include <string>)

Сначала введите «R:» часть ->inFile >> temp;
Во-вторых, ввод, как будут собраны много строк данных .->inFile >> N;
В-третьих, введите данные.

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

Кроме того, я предлагаю вам немного изменить формат, потому что есть также имена с тремя словами. –

+0

Бро, возможно ли это сделать другим способом? Потому что я новичок в C++ и не могу получить deque вещь .. :( – Tom

+0

Но я сделал еще одну вещь ... Я взял все чтение в массив символов. Возможно ли теперь сохранить символ в строку и целые числа в int из этого массива символов? – Tom

Смежные вопросы