C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型
Posted 若水微韧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型相关的知识,希望对你有一定的参考价值。
直接上代码
// ReadTxt.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include<iostream>
#include <vector>
#include <fstream>
#include <sstream>
#include <string>
using namespace std;
struct CoordinateData
{
//double x, y, z, a, b, c, d;
double v[7] = { 0.0 };
};
// 读取坐标信息文本文件,并解析到容器中
bool readCoordinateDataText(const std::string& src_file, std::vector<CoordinateData>& data);
int main()
{
std::cout << "Hello World!\\n";
std::vector<CoordinateData> coordinate_data;
bool succeed = readCoordinateDataText("000513U01N_Quaternion(3)(1).txt", coordinate_data);
if (!succeed)
{
// 未读出文件
}
return 0;
}
bool readCoordinateDataText(const std::string& src_file, std::vector<CoordinateData>& data)
{
data.clear();
// define the file to be read
std::ifstream fin(src_file, std::ios::in);
if (!fin.is_open())
{
return false;
}
// set the buffer size
char line[1024] = { 0 };
// read each line
while (fin.getline(line, sizeof(line))) {
// set the current line to a stringstream
std::stringstream ss(line);
while (!ss.eof()) {
//double p[7];
CoordinateData p;
std::string token;
for (unsigned dim = 0; dim < 7; dim++) {
ss >> token;
p.v[dim] = atof(token.c_str());
}
std::cout << "<" << p.v[0] << " " << p.v[1] << " " << p.v[2]
<< p.v[3] << " " << p.v[4] << " " << p.v[5] << " " << p.v[6] << ">" << std::endl;
data.push_back(p);
}
}
fin.close();
return true;
}
以上是关于C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型的主要内容,如果未能解决你的问题,请参考以下文章
C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型
C++逐行解析Txt文本文件,并将相应的字符串转换为double等类型