【发布时间】:2013-05-15 17:00:47
【问题描述】:
我有一个包含一个 int 和两个字符串的结构。读取文件时,前两个值以逗号分隔,最后一个值以换行符终止。但是,第三个参数可能为空。
前数据:7, john doe, 123-456-7891 123 fake st.
我想这样做,以便我的程序将获取第一个数字并将其放入 int,找到逗号并将第二个数字放入结构的字符串等。
第一个问题是我应该改用类吗?我见过getline(stream, myString, ',');,但我的参数是不同的数据类型,所以我不能把它们都扔到一个向量中。
我的代码:
struct Person{
int id;//dont care if this is unique
string name;
string extraInfo;
};
int main(int argc, char* argv[]){
assert( argc ==2 && "Invalid number of command line arguments");
ifstream inputFile (argv[1]);
assert( inputFile.is_open() && "Unable to open file");
}
存储此信息并从前两个逗号分隔并以换行符结尾的文件中检索它的最佳方法是什么?我还希望程序忽略文件中的空白行。
【问题讨论】:
-
数据是 CSV 格式,还是只是您自己的编码,保证字符串值周围的双引号? (在 CSV 中,在某些情况下不需要它们,例如某人只使用一个名字,例如麦当娜)。
-
引号永远不存在,我猜是坏习惯。删除它们。
标签: c++ file-io struct io stream