c++ - 读取文本文件,C++
问题描述
我想阅读这个有 6 列的文本文件。问题是在第二列中,输入是类间隔的形式,我不知道如何阅读,我最后一次尝试没有做这项工作。此外,我想打印第二列和第三列,但它正在做其他事情。请提供任何帮助。
#include <iostream>
#include <cmath>
#include <fstream>
#include <sstream>
int main()
{
std::ifstream f("t2kflux.txt");
std::string line;
while (std::getline(f, line))
{
float serial;
double Energy, Energy2;
double mu;
double mubar;
double e;
double ebar;
std::istringstream ss(line);
ss >> serial >> Energy >> Energy2 >> mu >> mubar >> e >> ebar;
std::cout << Energy << "\t" << mu << "\n";
}
}
数据样本是
Flux (/cm^2/1E21p.o.t/50MeV)
Bin# Energy (GeV) numu anti-numu nue anti-nue
---------------------------------------------------------------------------------
1 0.00- 0.05 1.27e+04 1.64e+04 1.80e+02 2.97e+01
2 0.05- 0.10 5.40e+04 5.41e+04 1.02e+03 1.23e+02
3 0.10- 0.15 1.11e+05 3.98e+04 2.17e+03 2.12e+02
4 0.15- 0.20 1.75e+05 3.10e+04 3.23e+03 2.86e+02
5 0.20- 0.25 2.62e+05 2.78e+04 4.08e+03 3.56e+02
6 0.25- 0.30 3.68e+05 2.77e+04 4.73e+03 4.15e+02
7 0.30- 0.35 4.83e+05 2.83e+04 5.27e+03 4.61e+02
8 0.35- 0.40 5.97e+05 2.92e+04 5.58e+03 4.93e+02
9 0.40- 0.45 7.21e+05 2.97e+04 5.80e+03 5.18e+02
10 0.45- 0.50 8.89e+05 2.93e+04 5.77e+03 5.31e+02
11 0.50- 0.55 1.11e+06 2.93e+04 5.72e+03 5.35e+02
12 0.55- 0.60 1.24e+06 2.98e+04 5.53e+03 5.31e+02
13 0.60- 0.65 1.23e+06 2.92e+04 5.33e+03 5.26e+02
14 0.65- 0.70 1.14e+06 2.80e+04 5.03e+03 5.15e+02
15 0.70- 0.75 9.10e+05 2.59e+04 4.76e+03 5.05e+02
解决方案
我已经编写了以下代码,它对我来说工作正常。我希望这可以帮助你。
#include<iostream>
#include<cmath>
#include<fstream>
#include<string>
#include<sstream>
int main()
{
std::ifstream f("honey.txt");
std::string line;
while(std::getline(f,line))
{
float serial;
std::string Energy,Energy2;
std::string mu;
std::string mubar;
std::string e;
std::string ebar;
std::istringstream ss(line);
ss>>serial>>Energy>>Energy2>>mu>>mubar>>e>>ebar;
std::cout<<Energy<<"\t"<<mu<<"\n";
}
}
解决此问题的其他方法是:
第 1 步:首先创建一个程序,从文件中删除破折号(-)。
第2步:使用您的程序(如问题),它将正常工作。
推荐阅读
- python - 在python中安装枕头的问题
- python - 您可以继续在列表中添加内容直到某个点吗?
- python - 无法使用 python 从 url 中检索 json 数据
- kdb - 多进程启动脚本 q
- python - python asyncio如何读取StdIn并写入StdOut?
- coq - 非归纳类型的平等
- html - Html : 查看其父 id 之外的 id
- python - PubsubMessage publish_time 被保存为 DatetimeWithNanoseconds
- wso2 - 寻找用于监控流量管理器队列的 WSO2 JMS 参数
- reactjs - 在反应中使用地图方法增加按钮