C++读取文件——读取.csv文件指定数据,并保存至.txt文本

简介

        本程序读取的.csv文件是由KeySight B1500/B1505中IV_ALL程序生成的数据文件,该IV_ALL程序设计用来测量器件的输出曲线及转移曲线,因此其生成的.csv文件包含了多条输出曲线数据、多条转移曲线数据。

        本程序设计用来提取多条输出曲线数据、一条转移曲线(Vd=0.1V情况下的VTH_2曲线)。一共编写了3个函数Read_csv()、Get_vd(double Vd[], double Vg[], double Id[])、Get_vg():

  • Read_csv负责按行读取.csv文件中(该文件需保存在同一工作文件夹下,若不在同一文件夹可自行修改读取文件的路径)所有内容,并将指定行的输出曲线数据、转移曲线数据分别写入Vd-Id.txt、Vg-Id.txt中,以方便后续提取输出、转移曲线中的数据;
  • Get_vd则是读取输出曲线数据Vd-Id.txt,并将数据部分保存至Vd-Id-final.txt,这里有个需要注意的地方:多条输出曲线导致原.csv文件中的Vd值会循环变化,只是对应的Id值不同,这就需要最后写入Vd-Id-final.txt文本中的Vd值只需循环一次,对应的不同Id值依次排列在Vd后边即可;
  • Get_vg负责读取转移曲线数据Vg-Id.txt,并将数据部分保存至Vg-Id-final.txt,同时还会在控制台窗口输出最后一行的Vg-Id数据供参考。

目录

1. 读取原csv文件,保存指定行数据

2. 读取输出曲线数据,保存所需数据

3. 读取转移曲线数据,保存所需数据

4. 头文件及主函数

5. 运行结果


1. 读取原csv文件,保存指定行数据

        本函数Read_csv先逐行读取同一工作文件夹下的名为D4-11-3-5-2024_6_21 11_18_35.csv的文件,利用count计数来判断读取的行数,当到达Start_row_vd行开始将读取的数据写入到Vd-Id.txt直到Stop_row_vd行结束数据写入(写入的数据就是输出曲线数据),继续读取原csv文件,然后在到达Start_row_vg行再次将读取的数据写入到Vg-Id.txt直到Stop_row_vg行结束(写入的数据就是VTH_2转移曲线数据),继续读取直到结束。最后,在控制台窗口输出.csv文件总行数。

代码如下:

/* 读取csv文件,将其中的输出曲线数据、转移曲线VTH_2数据分别保存至Vd-Id.txt、Vg-Id.txt */
void Read_csv()
{
    ifstream infile;
    ofstream outfile_vd, outfile_vg;
    infile.open("./D4-11-3-5-2024_6_21 11_18_35.csv"); // 文件路径需要修改
    outfile_vd.open("./Vd-Id.txt");
    outfile_vg.open("./Vg-Id.txt");
    if (!infile.is_open())
    {
        cout << "Fail to open the file!" << endl;
        return;
    }
    string temp;
    int count = 1;
    // 将csv文件内容读进temp中
    while (getline(infile, temp)) // 利用 getline() 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值