Advertisement

C++简单读写GPS信号

阅读量:

文章目录

  • 前言

  • 一、原始数据

  • 二、代码分析

    • 1.读写数据
    • 2.split函数
  • 总结


前言

利用C++完成简单的txt读写


一、原始数据

以读取GPS信号为例

txt的数据格式之一如下图所示

在这里插入图片描述

二、代码分析

1.读写数据

关键代码如下:

复制代码
    #include <iostream>
    #include<fstream>
    #include<string>
    #include<vector>
    
    using namespace std;
    int main()
    {
    	ifstream readFile("");//读取txt的路径
    	ofstream outFile("");//输出txt的路径
    	if (!readFile.is_open()) {
    		cout << "can not open this file" << endl;
    		return 0;
    	}
    	string str = "";
    	while (getline(readFile, str)) {//进行一行行读取
    		vector<string> result = split(str);
    		if (result[0] == "$GPRMC") { //GPRMC
    			//进行解析操作
    		}
    		outFile<<""<<endl;//写入新的txt中
    	}
    	readFile.close();
    	outFile.close();
    	system("PAUSE");
    	return 0;
    }

2.split函数

代码如下:

复制代码
    vector<string> split(string& str) { //定义分隔函数,以逗号为分隔符
    	vector<string> result;
    	int pos = 0;//下标
    	string douhao = ",";
    	for (int i = 0; i < str.size(); i++) {  //进行遍历存放
    		pos = str.find(douhao, i);
    		if (pos < str.size()) {
    			string s = str.substr(i,pos-i);
    			result.push_back(s);
    			i = pos + douhao.size() - 1;
    		}
    	}
    	//由于上述操作做完还没有把最后一个逗号后面的字符串存进去
    	//所以选择性存最后一个字符串的某部分
    	int a = str.rfind(douhao);  //从后面找第一个逗号,返回它的下标
    	int b = str.rfind("*");
    	string last = str.substr(a+1, b - a-1);
    	result.push_back(last);
    	return result;
    }

总结

完整代码:完整代码下载

全部评论 (0)

还没有任何评论哟~