比如,.DAT文件的格式如下:
我想读取数据流头为 $PSNSR 一行的数据,其他的数据都不要!
代码如下:
#include <iostream>
#include <iomanip>
#include <string.h>
#include <fstream>
#include <math.h>
#include <string>
#include<sstream>
#include <stdlib.h>
#include <cstring>
using namespace std;
// DAT文件所在路径
std::string true_data_Path = "/home/jht/VIns_Code/DAT2bin/output/20211122234358.dat";
int main()
{
// 保存文件路径
ifstream infile("/home/jht/VIns_Code/DAT2bin/output/20211122234358.dat");
string temp;
if (!infile.is_open())
{
cout<<"can not open the file \n"<<endl;
return -1;
}
std::ofstream Openfile("/home/jht/VIns_Code/DAT2bin/output/20211122234358_sensor_data.txt");
while(1)
{
getline(infile,temp) ;
if(! temp.find("$PSNSR") ) // 判断
{
cout<<temp<<"\n"; // 打印
Openfile<<temp; // 保存数据
Openfile<<"\n"; // 换行(重要)
}
}
infile.close();
return 0;
}
话外:ASCII转成16进制的MATLAB 程序
clear
clc
close all
fp=fopen('sensor_data.txt','rb');
data1=fread(fp);fp1=fopen('PSNSR.bin','w');
fwrite(fp1,data1,'uint8')
fclose(fp1);