c++ - 如何读取从 csv 存储的数据
问题描述
我正在尝试学习如何从 .csv 文件中读取数据。代码显示来自 csv 文件的数据是逐行读取的。将数据存储在 variable 后
string arrival;
,将获取来自的子字符串,arrival
但我一直坚持如何从每一行获取第一列的子字符串。是否有另一种方法可以从 csv 读取数据?这是输出。
#include<iostream>
#include<fstream>
#include<string>
#include<string.h>
#include<exception>
#include<sstream>
using namespace std;
int main()
{
string arrival,burst[1000];
char string[] ="Job";
char *tokenptr;
int x=0;
tokenptr = strtok(string," ");
ifstream jobfile("job.csv");
if(jobfile.is_open())
{
cout << "Successfully open file"<<endl;
while(jobfile!=NULL)
{
getline(jobfile,arrival,',');
cout << arrival << endl;
try
{
if(arrival.length() < 30)
{
std::string jobstr = arrival.substr (28,1); //To take substring from arrival
stringstream job(jobstr);
int jobArr; // To convert string into integer
job >> jobArr;
cout<<"Job Arrival = " << jobArr <<endl;
}
if(arrival.length() == 30)
{
std::string jobstr = arrival.substr (29,2);
stringstream job(jobstr);
int jobArr;
job >> jobArr;
cout<<"Job Arrival = " << jobArr <<endl;
}
if(arrival.length() > 30)
{
std::string jobstr = arrival.substr (30,2);
stringstream job(jobstr);
int jobArr = 0;
job >> jobArr;
cout<<"Job Arrival = " << jobArr <<endl;
}
}
// To check exception
catch (std::exception const &exc)
{
std::cerr << "Exception caught " << exc.what() << "\n";
}
catch (...)
{
std::cerr << "Unknown exception caught\n";
}
for(int i=0;i < 4;i++)
{
getline(jobfile,burst[i],',');
cout<<burst[i]<<endl;
}
tokenptr=strtok(NULL," ");
if(tokenptr==0)
{
x+=1;
}
}
cout<<"Number of Job ="<< x <<endl;
}
jobfile.close();
}
解决方案
推荐阅读
- odoo - 如何在 Odoo 11 Enterprise 中为选定帐户设置“管理数据库”按钮?
- loops - 超出内存限制 - Python
- flatpickr - Flatpickr 时间格式操作
- regex - Bash if 语句检查 1 个字母和 2 个数字
- cryptography - 使用椭圆曲线密码术使用公钥加密并使用私钥解密
- python - ModuleNotFoundError:没有名为“requests_html”的模块
- dependency-management - 如何在 ivy 中调整版本分辨率
- sql - 如何从包含两个文本字符串的一列中检索一个文本字符串?
- string - Bash 字符串重定向到标准输入:删除换行符
- python - python 3,ssh隧道与使用熊猫的sql查询不起作用