【发布时间】:2018-02-13 06:45:41
【问题描述】:
您好,我想知道最有效的方法是读取 .csv 文件并将每个逗号分隔的项目存储到其自己的数组或变量中。我只能使用#include <iostream>。我正在考虑使用 .getLine(),但我只知道要存储的分隔符和值,因为不允许使用 <fstream>。话虽这么说,有人知道我该怎么做吗?提前致谢!
这是文件的布局。第一行表示要读取的行数。
输入文件
3
2014,Computer Science,Utah,1568,44.9
2014,Marketing,Michigan,23745,983
215,Business Management, Idaho,256,674
代码:
int year;
char* major = new char[40];//cant be longer than 40 characters
char* state = new char[40];
int enrolled;
int rate;
char p;//for cin.get characters possibly
cin>>rows
for(int i = 0; i <= rows; i++){
HMMMMM?
}
【问题讨论】:
-
您是否尝试过使用
getline?这似乎是解决方案的一个很好的开始。您不需要像文件中的号码那样cin。 -
我仍然不明白教授们倾向于对此类作业施加的愚蠢限制(使用流库,但嘿,不是全力以赴,哈哈,傻瓜)。
-
@snipshow7,“高效”不是你应该关心的词。首先,您需要一个数组(或者更好的是,vector)来存储每条记录,它应该是它自己的类。编写一个函数来读取一条记录。编写一个函数,使用第一个函数读取所有记录。
-
应该直接链接到 stackoverflow.com/questions/1120140/… 重复。
-
读取文件,不允许
fstream。我想这会将文件传送到cin或使用C 文件处理函数。我想知道fread变成std::stringstream,然后解析stringstream会违反规则。