c++ list读取csv文件,并将每列数据保存到结构体中

csv文件有6列,如何把每列内容单独读出并保存到结构体的成员中,用list!!这样写有什么问题吗,编译没有错误,可是得到的却都是乱码voidCFileRead::read... csv文件有6列,如何把每列内容单独读出并保存到 结构体的成员中,用list!!
这样写有什么问题吗,编译没有错误,可是得到的却都是乱码
void CFileRead::readCSV(istream &input)
{
string csvLine;
while (getline(input, csvLine)) {
istringstream csvStream(csvLine);
string csvElement;
TcsvMake tcsv;
while (getline(csvStream, csvElement, ',') {
istringstream CsvStream(csvElement);
csvStream >> tcsv.bianhao>> tcsv.CELLCODE>> tcsv.IP>> tcsv.C_hao>> tcsv.EPC>> tcsv.RCS;}

}
m_csvMakeList.push_back(tcsv);
}
}
展开
 我来答
爱的轩言521
2017-08-09 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1万
采纳率:90%
帮助的人:1647万
展开全部
[cpp] view plain copy
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>

using namespace std;
//删除字符串中空格,制表符tab等无效字符
string Trim(string& str)
{
//str.find_first_not_of(" \t\r\n"),在字符串str中从索引0开始,返回首次不匹配"\t\r\n"的位置
str.erase(0,str.find_first_not_of(" \t\r\n"));
str.erase(str.find_last_not_of(" \t\r\n") + 1);
return str;
}

int main()
{
ifstream fin("test1.csv"); //打开文件流操作
string line;
while (getline(fin, line)) //整行读取,换行符“\n”区分,遇到文件尾标志eof终止读取
{
cout <<"原始字符串:"<< line << endl; //整行输出
istringstream sin(line); //将整行字符串line读入到字符串流istringstream中
vector<string> fields; //声明一个字符串向量
string field;
while (getline(sin, field, ',')) //将字符串流sin中的字符读入到field字符串中,以逗号为分隔符
{
fields.push_back(field); //将刚刚读取的字符串添加到向量fields中
}
string name = Trim(fields[0]); //清除掉向量fields中第一个元素的无效字符,并赋值给变量name
string age = Trim(fields[1]); //清除掉向量fields中第二个元素的无效字符,并赋值给变量age
string birthday = Trim(fields[2]); //清除掉向量fields中第三个元素的无效字符,并赋值给变量birthday
cout <<"处理之后的字符串:"<< name << "\t" << age << "\t" << birthday << endl;
}
return EXIT_SUCCESS;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式