C++文件流std::ifstream的使用

由于在科研过程中,经常需要提取文件中的数据。这时候使用文件流ifstream去读取数据就比Excel处理数据快多了!

在ifstream中有两个内置的API均可读取文件流中的数据:get()和getline(char* buff, int count, char c)。 getline()的作用是根据指定的字符,将读取的单行文件内容分割成若干块。在读取到c这个字符时,或者是指定的字节数量count读取完时,会将之前读取的字符串保存在buff中。

搭配for循环,还有右运算符>>就可以将文件中想要提取的数据提取出来。

打开指定文件:

char filename[256] = "C:\\Users\\Administrator\\Desktop\\energy.txt";
std::ifstream inFile;
inFile.open(filename);

提取被’ : '间隔开的数据:

double dataX[10];
char Char1 = ':';
for (int i = 0; i < spinBox1.value(); ++i)  //spinBox1.value()返回的值是3
			inFile.getline(buff, 256, Char1);
inFile >> dataX[0];

运行程序,将提取到的数据保存在dataX[0]中。
在打开energy.txt后,文件的第一行内容为:

steps: 60;volFraction: 0.649000;Energyperparticle: 0.00000016910417860;gamma: -0.000000

得到的dataX[0]值:

1.69104e-07

实际上,我们如果需要在一行中读取字符或者其他类型的数据,只需要将double dataX[10]前面的数据类型改成char或许其他指定的类型,再根据分隔符Char1去读取。

不过,一般处理数据时,我们都是只需要double类型的数据就足够了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值