我需要帮助C ++从输入文件获取信息并将其存储为不同的变量。它采用以下格式。
我们,在Northfields,在Northfields,VA,9342,38.8042,-77.205
我将如何做到这一点?
编辑:对不起,这是我第一次使用论坛。这是我到目前为止所做的。
#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;
}
目前我已将其设置为设置变量。我有一个头文件,有助于缩短代码。我现在需要能够确定最高人口,如何在不使用数组的情况下进行此操作?
答案 0 :(得分:0)
除非将它们写入源代码,否则无法将它们转换为实际变量。
您最接近的通常是将它们存储在std::map
或std::unordered_map
中,并将预期的“变量名称”作为关键字。
答案 1 :(得分:-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
缓冲区中访问不同的值作为索引。