【发布时间】:2018-09-16 20:40:46
【问题描述】:
此函数的目的是将 .txt 文件的各个行放入不大于 20 的数组中。但是,如果无法将循环中的每一行分配给该数组,我不知道如何进行。
int read_file(string file_name, person map[20], int
line_limit)
{
int line_count = 0;
string x;
person specific;
顺便说一句,person 类有 2 个名为 first_name 和 last_name 的字符串以及 1 个名为 age 的 int。 StackOverflow 不允许我发布我猜想的整个程序。
fstream input_file;
input_file.open(file_name, ios::in);
if (input_file.is_open())
{
cout << "WORKING" << endl;
//Loop through .txt file
while (!input_file.eof() && line_count <
line_limit)
{
if (input_file.good())
{
input_file >> x;
map[line_count] = x;
ABOVE 行派生“没有可行的重载 '='”错误。
line_count++;
}
}
}
else
cout << "Not Working" << endl;
return 1;
return 0;
}
任何提示也会很棒!
这是我循环浏览的 .txt 文件。当我遍历 .txt 文件时,我想分配每个名字、姓氏和年龄。我想将它分配给字符串 x,然后将当时 x 中的内容放入人员类型的数组中,该数组接受参数字符串 last_name、字符串 first_name 和 int age。
Ann Christensen 70
Carlos Morales 68
David Bowman 45
Frank Bowman 37
John Bowman 30
Kathleen Gueller 34
Mark Bowman 42
Mark Bowman 13
Richard Bowman 47
Susan Cox 36
class person
{
private:
string first_name;
string last_name;
int age;
//Person Constructor - Empty
public:
person()
{
first_name = "";
last_name = "";
age = 0;
//void get(istream &);
//void put(ostream &);
//bool operator = ();
}
【问题讨论】:
-
string不是person,那么您希望map[line_count] = x;做什么? -
我正在尝试将字符串 x 分配给 first_name,然后是 last_name,然后是 age,因为它遍历了这个 .txt 文件。安克里斯滕森 70 卡洛斯莫拉莱斯 68 大卫鲍曼 45 弗兰克鲍曼 37 约翰鲍曼 30 凯瑟琳古勒 34 马克鲍曼 42 马克鲍曼 13 理查德鲍曼 47 苏珊考克斯 36
-
如果可以的话,我会将 .txt 文件添加到帖子中...
-
更相关的是
person的定义,尽管是什么阻止了你只做map[line_count].first_name = x;之类的事情(或者如果你有一个setter,则使用setter)? -
这会起作用@UnholySheep 还是我会得到相同的 = 运算符错误?不过我肯定会尝试的。
标签: c++