2013-03-07 3 views
-3

Мне нужна помощь с C++, получение информации из ввода и сохранение его как различных переменных. Он находится в следующем формате.Хранение информации в текстовом файле как переменных в C++

нас, Northfields, Northfields В.А., 9342,38.8042, -77,205

Как бы я идти об этом?

Редактировать: Sorry, это мой первый раз, используя форумы. Это то, что у меня есть до сих пор.

#include "city.h" 

void readLineOfData(istream& in, string &country, string &city, string &city2, 
    string &state, int &pop, string &lat, string &longi); 

void output(ostream& out, string country, string city, string city2, 
    string state, int pop, string lat, string longi); 

void cities(istream& in, ostream& out) 
{ 
    ifstream ("cities.txt"); 
    string country, city, city2, state, lat, longi; 
    int pop; 
    readLineOfData(in, country, city, city2, state, pop, lat, longi); 
    while(!in.fail()) 
    { 

     output(cout, country, city, city2, state, pop, lat, longi); 


     readLineOfData(in, country, city, city2, state, pop, lat, longi); 
    } 
    return; 
} 

void readLineOfData(istream& in, string &country, string &city, string &city2, 
    string &state, int &pop, string &lat, string &longi) 
{ 
    getline(in, country, ','); 
    getline(in, city, ','); 
    getline(in, city2, ','); 
    getline(in, state, ','); 
    in >> pop; 
    in.ignore(200, ','); 
    getline(in, lat, ','); 
    getline(in, longi, '\n'); 

} 

void output(ostream& out, string country, string city, string city2, 
    string state, int pop, string lat, string longi) 
{ 
    out << country << endl; 
    out << city << endl; 
    out << city2 << endl; 
    out << state << endl; 
    out << pop << endl; 
    out << lat << endl; 
    out << longi << endl; 
} 

В настоящее время я настроен для установки переменных. У меня есть файл заголовка, который помогает сократить код. Теперь мне нужно определить наивысшую численность населения, как я буду заниматься этим без использования массивов?

+3

Это не очень хороший вопрос для переполнения стека. Вы, как ожидается, придете сюда, в основном, знакомы с программированием. Не нужно быть экспертом, но вы должны прочитать некоторую документацию. Чтобы убедить нас, что вы так далеко, вы можете сказать нам, что вы пробовали, и как это вас подвело. Вы должны уметь уточнить вопрос: существует ли только одна строка ввода или может быть много? Вы точно знаете, сколько? Может ли какое-либо из полей иметь в них запятые или это ',' * always * разделитель? Дайте нам что-то для работы здесь! – dmckee

ответ

0

Вы не можете превратить их в реальные переменные, кроме как записать их в исходный код.

Ближайшие, которые вы можете получить, как правило, хранят их в std::map или std::unordered_map с предполагаемым «именем переменной» в качестве ключа.

-1

попробовать что-то вроде этого:

std::vector<std::string> data; 
std::ifstream in("file.txt"); 
std::string temp = ""; 
for(std::istream_iterator<char> iter(in); in; ++iter) { 
    if(*iter == ',') { 
    data.push_back(temp); 
    temp = ""; 
    } 
    else { 
    temp += *iter; 
    } 
} 

Вы можете получить доступ к различным значения в качестве индексов в data буфере.

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