Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >c++正在读取csv文件

c++正在读取csv文件
EN

Stack Overflow用户
提问于 2013-11-12 17:56:44
回答 3查看 55.5K关注 0票数 9

我想使用c++读取csv文件,所以这是我的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 int main(){
 ifstream classFile("class.csv");
 vector<string> classData;

 while (getline(classFile, line,',')) // there is input overload classfile
        {
            classData.push_back(line);  

        }
}

这是我的问题:我的问题是,当它读取每一行的最后一列时(因为它没有用逗号分隔),它读取最后一列数据和下一行的第一个数据,例如,如果我的数据是

className,classLocation,c++教授,图书馆,约翰

然后它会显示为className/ classLocation/ Professor c++/ Library / John

有没有什么办法可以把我的最后一列和下一行的第一列分开?谢谢你,很抱歉这让人迷惑

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-12 18:02:35

逐行阅读文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
std::string line;
while(std::getline(stream, line)) ...

将每一行传递给istingstream并读取字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
std::istringstream s(line);
std::string field;
while (getline(s, field,',')) ...

免责声明:这是对csv文件的简化解析。

票数 24
EN

Stack Overflow用户

发布于 2014-07-08 16:19:59

对不起,我可以在这个线程中插入一些普通的C吗?

在这里,csv的阅读非常清晰:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>


int main()
{
  float f1, f2;

  FILE *fp;
  fp = fopen("file.csv", "r");

  while (fscanf(fp, "%g,%g\n", &f1, &f2) == 2)
    printf("%g\n", f1+f2);
}

可以肯定的是,它应该适用于C++工作的地方。

在这里,在while中,我们检查fscanf找到了多少个对象:fscanf(fp, "%g,%g\n", &f1, &f2) == 2 -- fscanf返回它找到的对象数。

我希望这能对某些人有所帮助。

(如果有人想了解更多关于fscanf和阅读文件的信息,请留下一些评论。)

票数 4
EN

Stack Overflow用户

发布于 2018-12-21 08:05:49

如果您对在main部分中调用void函数感兴趣,请查看以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void readCSV(const string &strPath2Dataset)
{   
    ifstream csvFile;
    string strPathCSVFile = strPath2Dataset + "/test.csv";
    csvFile.open(strPathCSVFile.c_str());

    if (!csvFile.is_open())
    {
        cout << "Path Wrong!!!!" << endl;
        exit(EXIT_FAILURE);
    }

    vector<long double> timeStampIMU;
    vector<long double> gyro_X;
    vector<long double> gyro_Y;
    vector<long double> gyro_Z;

    vector<long double> acc_X;
    vector<long double> acc_Y;
    vector<long double> acc_Z;

    string line;
    vector <string> vec;
    getline(csvFile, line); // skip the 1st line

    while (getline(csvFile,line))
    {
        if (line.empty()) // skip empty lines:
        {
            //cout << "empty line!" << endl;
            continue;
        }

        istringstream iss(line);
        string lineStream;
        string::size_type sz;

        vector <long double> row;

        while (getline(iss, lineStream, ','))
        {  
            row.push_back(stold(lineStream,&sz)); // convert to double
        }

        timeStampIMU.push_back(row[0]);

        gyro_X.push_back(row[1]);
        gyro_Y.push_back(row[2]);
        gyro_Z.push_back(row[3]);

        acc_X.push_back(row[4]);
        acc_Y.push_back(row[5]);
        acc_Z.push_back(row[6]);
    }

    //cout << "size ts = " << timeStampIMU.size() << endl;
    for (size_t i = 0; i < timeStampIMU.size(); i++)
    {
        cout << "ts_imu = " << setprecision(12) << timeStampIMU[i] << endl;

        cout << "gx = " << setprecision(12) << gyro_X[i] << endl;
        cout << "gy = " << setprecision(12) << gyro_Y[i] << endl;
        cout << "gz = " << setprecision(12) << gyro_Z[i] << endl;

        cout << "ax = " << setprecision(12) << acc_X[i] << endl;
        cout << "ay = " << setprecision(12) << acc_Y[i] << endl;
        cout << "az = " << setprecision(12) << acc_Z[i] << endl;
        cout << "--------------------------------" << endl;
    }
}

我的.csv文件是由IMU传感器提供的数据集,用逗号分隔:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TimeStamp, Gyro_X, Gyro_Y, Gyro_Z, Acc_X, Acc_Y, Acc_Z
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19936483

复制
相关文章
jmeter读取csv文件
操作步骤: 1.读取csv文件 2.编辑httpSampler
互联网金融打杂
2018/08/02
1.5K0
jmeter读取csv文件
Tensorflow | 读取csv文件
结果好长,给出关键的部分: INFO:tensorflow:Saving evaluation summary for step 12001: accuracy = 0.966667, loss = 0.461221 Accuracy: 0.966667
努力在北京混出人样
2019/02/18
1.8K0
JAVA读取csv文件_java读取csv文件某一列
当读取的是一个简单的csv文件,即文件的列字段中不包含分隔符时,可以使用BufferedReader或者Scanner类去读取
全栈程序员站长
2022/11/16
3.8K0
go语言读取CSV文件
package main import ( "encoding/csv" "fmt" "io/ioutil" "strings" ) // 游戏读取数据,读取游戏配置数据 func ReadCsv_ConfigFile_Fun(fileName string) bool { // 获取数据,按照文件 fileName = "./csv/" + fileName cntb, err := iouti
李海彬
2018/03/22
6.5K0
Python学习:读取csv文件
CSV是Conma Sepatrate Values(逗号分隔值)的缩写,文档的内容是由‘,’分隔的一列列数据构成的。CSV格式是电子表格和数据库最常用的导入和导出格式。 CSV模块实现了以CSV格式读取和写入表格数据,它允许程序员以Excel首选格式写入数据,或者从Excel生成的文件中读取数据。
烤粽子
2021/07/07
2.7K0
Python学习:读取csv文件
读取csv(tsv)文件出错
用以下语句读tsv文件:df_in=pd.read_csv('../data/voyage_report_20220623.tsv', sep='\t')报错如下:ParserError: Error tokenizing data. C error: EOF inside string starting at row 15212改成:df_in=pd.read_csv('../data/voyage_report_20220623.tsv', sep='\t',quoting=csv.QUOTE_NONE
西西木木
2022/06/24
2K0
java读取写入CSV文件
[1]使用Split函数分成一个String[]: https://blog.csdn.net/u013555719/article/details/106029538
演化计算与人工智能
2020/08/14
4.1K0
java读取写入CSV文件
python中如何打开csv文件_python如何读取csv文件
python如何读取csv文件,我们这里需要用到python自带的csv模块,有了这个模块读取数据就变得非常容易了。
全栈程序员站长
2022/09/16
7.9K0
python中如何打开csv文件_python如何读取csv文件
QT 读取csv文件「建议收藏」
最近项目中提出的需求是从excel表格中导入数据,查阅了很多资料之后,发现直接操作xls格式文件并不容易,之后找到了一个比较好的解决办法,那就是把xls文件另存为csv文件,然后在程序中进行操作。首先大致说明一下这两种格式的区别:
全栈程序员站长
2022/09/13
3.8K0
python文件操作步骤_python读取csv文件
文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件
全栈程序员站长
2022/09/19
1.6K0
python pandas读取csv文件_pandas将数据写入csv
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175441.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
5.9K0
python pandas读取csv文件_pandas将数据写入csv
python pandas.read_csv参数整理,读取txt,csv文件
pandas.read_csv参数整理 读取CSV(逗号分割)文件到DataFrame 也支持文件的部分导入和选择迭代 更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html 参数: filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handl
学到老
2018/03/16
6.4K0
Android 读取csv格式数据文件
什么是csv文件呢?百度百科上说 CSV是逗号分隔值文件格式,也有说是电子表格的,既然是电子表格,那么就可以用Excel打开,那为什么要在Android中来读取这个.csv格式的文件呢?因为现在主流数据格式是采用的JSON,但是另一种就是.csv格式的数据,这种数据通常由数据库直接提供,进行读取。下面来看看简单的使用吧
晨曦_LLW
2020/09/25
2.4K0
Python--读取csv文件的整列
上代码: #利用pandas读取csv文件 def getNames(csvfile): data = pd.read_csv(csvfile,delimiter='|') # 1--读取的文件编码问题有待考虑 names = data['EnName'] return names 读取EnName这一列
K同学啊
2019/01/22
2.9K0
python pandas.read_csv参数整理,读取txt,csv文件
更多帮助参见:http://pandas.pydata.org/pandas-docs/stable/io.html
学到老
2019/02/14
3.8K0
Java读取pkl文件_theano csv到pkl文件
my_data = genfromtxt(csvFile, delimiter=’,’, skip_header=1)
全栈程序员站长
2022/09/30
1.3K0
Python数据分析之读取文件读取CSV读取Excel读取MySQL读取MongoDB
Python的数据分析,大部分的教程都是想讲numpy,再讲Dataframe,再讲读取文件。但我看书的时候,前面二章看的实在头晕,所以,我们还是通过读取文件来开始我们的Python数据分析吧。 读取
罗罗攀
2018/07/03
5.8K0
python读取与写入csv EXCEK HDF 文件
一. 数据文件         pd指pandas简称,df指DataFrame对象。 1. csv 读取  pd.read_csv('foo.csv') 写入  df.to_csv('foo.csv') 2. HDF5 读取  pd.read_hdf('foo.h5', 'df') 写入  df.to_hdf('foo.h5', 'df') 3. Excel 读取  pd.read_excel('foo.xlsx', 'sheet1', index_col=None, na_values=['NA']) 写入  df.to_excel('foo.xlsx', sheet_name='sheet1') 二. 数据结构 1. Series         Series是一维标记数组,可以存储任意数据类型,如整型、字符串、浮点型和Python对象等,轴标一般指索引。创建Series的方法为 >>>s=Series(data, index=index) data可以是Python词典、ndarray和标量值。 2. DataFrame         DataFrame是二维标记数据结构,列可以是不同的数据类型。它是最常用的pandas对象,像Series一样可以接收多种输入:lists、dicts、series和DataFrame等。初始化对象时,除了数据还可以传index和columns这两个参数。 3. Panel         Panel很少使用,然而是很重要的三维数据容器。Panel data源于经济学,也是pan(el)-da(ta)-s的来源。在交叉分析中,坐标轴的名称略显随意 items: axis 0  代表DataFrame的item major_axis: axis 1  代表DataFrames的index(行) minor_axis: axis 2  代表DataFrames的列 4. Panel4D         Panel4D是像Panel一样的4维容器,作为N维容器的一个测试。 labels: axis 0  每个item相当于panel items: axis 1  每个item相当于DataFrame major_axis: axis 2  它是dataframe的index minor_axis: axis 3  它是dataframe的columns         Panel4D是Panel的一个子集,因此Panel的大多数方法可用于4D,但以下方法不可用:join, to_excel, to_frame, to_sparse, groupby。 5. PanelND         PanelND是一个拥有factory集合,可以创建像Panel4D一样N维命名容器的模块。
学到老
2019/02/14
1.8K0
【python】读取csv xlsx xlx txt文件 类
只需修改path class Reader: """ 可读取的文件格式: .csv .tsv .xlsx .xlx .txt """ @staticmethod def change_1d_array(array, header_cut=None, str_to_float=None): """ 为一维数组去掉第一个值;将字符串转为数值 :param array: type:<class 'numpy.ndarray'
司六米希
2022/11/15
1.1K0
python读取与写入csv EXCEK HDF 文件
一. 数据文件         pd指pandas简称,df指DataFrame对象。 1. csv 读取  pd.read_csv('foo.csv') 写入  df.to_csv('foo.csv') 2. HDF5 读取  pd.read_hdf('foo.h5', 'df') 写入  df.to_hdf('foo.h5', 'df') 3. Excel 读取  pd.read_excel('foo.xlsx', 'sheet1', index_col=None, na_values=['NA'])
学到老
2018/03/16
2.2K0

相似问题

正在读取csv文件

30

正在读取csv文件

11

正在读取.csv文件。

13

SAS正在读取csv文件

14

正在从R读取csv文件

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文