c++ - 从csv文件c ++读取时stoi抛出错误
问题描述
我需要帮助尝试从 csv 文件中读取数据。
我的 csv 的布局如下
1 鲍勃 1 2 11 3 4 5 6 6
2 简 2 2 11 3 4 5 6 6
等等
这就是我试图从中读取的方式
std::ifstream file;
Data d;
std::vector<Data> values;
std::string number, name;
file.open("Data-Organisation-Test1.csv");
while (file.good())
{
getline(file,number,',');
getline(file,name,',');
//std::cout<< typeid(number).name();
int num = stoi(number);
d.num = num;
d.name = name;
// go through all fields
values.push_back(d);
}
我面临的问题:
使用 stoi() 时出现以下错误
terminate called after throwing an instance of 'std::invalid_argument'
what(): stoi
当我输出变量编号的数据类型时,它会返回“s”,其次是因为我不确定我是否正在努力实现我想要实现的目标。
这就是我想要实现的目标:
struct Data{
int number;
std::string name;
// ...
}
read from csv file and get reach column and place into struct ie:
getline(file,number,',');
getline(file,name,',');
d.number = number;
d.name = name;
...
我也得到 3 的返回值
编辑:这是我最接近它的工作
while (!inFile.eof()) {
getline ( inFile, number, ',' );
getline ( inFile, name, ',' );
getline ( inFile, mark, ',' );
getline ( inFile, raw, ',' );
std::cout << "number: " << number << std::endl;
std::cout << "name: " << name<< std::endl;
std::cout << "mark: " << mark<< std::endl;
std::cout << "raw: " << raw<< std::endl;
}
这对第一行输出正确,并且每隔一行关闭一个,即:
输出:
number: 1
name: A
mark: 2
raw: 13
2
number: b
mark: 3
raw: 14
3
weight: c
number: 4
name: 11
解决方案
推荐阅读
- nginx - 如何将 WWW url 重定向到 nginx 中的非 www url?
- sql - 将日期字段与oracle中的特定日期时间进行比较
- for-loop - How to remove all cloned gui in roblox
- python - 从 SQL 和 python 中的列表中选择
- c# - .Net Core 3.1 MVC - 授权 - 如何记录成功或失败的登录?
- ruby - 如何在 Sinatra 中维护使用 Pony gem 发送的电子邮件状态日志
- python - 自动更新请求授权承载
- windows - 在命令提示符下使用 DEL 批处理文件命令删除后文件去哪了?
- java - 使用 sprinv-mvc 时,OpenAPI Generator 基本路径以 host 为前缀
- html - 用于