【发布时间】:2015-11-23 21:45:54
【问题描述】:
假设我想读取一个 .txt 文件并以这种方式格式化
Max,1979
Wade,1935
Hugh,1983
Eric,1936
这是我使用的代码
- 读入文件。
-
将其存储到字符串和 int 的向量中(分别用于姓名和年份)
void calcAges(){ while (getline(infile, line, ',')){ names.push_back(line); years.push_back(line); } } void printNames(){ cout << "\n\tDisplaying data...\n"; for (int i = 0; i < counter; i++){ cout << (i + 1) << ".\tName: " << names[i] << "\tYear: " << years[i] << endl; } }
输出应如下所示:
1. Name: Max Year: 1979
.
.
.
and so on...
但是,我在尝试制作它时遇到了麻烦,因此我读入“infile”的文件以逗号和换行符分开。我将这些变量存储到向量数组中,以便稍后进行排序和切换。在这一点上我很难过。
【问题讨论】:
-
在附加到
years之前添加另一个getline(infile,line)(这次没有分隔符)。然后这将读取该行的其余部分 -
不敢相信我竟然想到了这个!但是,当我尝试输入第二个“getline(infile,line)”时,我收到一条错误消息,说 getline 不能接受 int?除此之外,将我的年份向量更改为字符串会使代码正常。但是存储年份的字符串向量是没有意义的。不过非常感谢!
-
当你推入
years时,你必须明确地将 line 转换为 int