主要的处理场景为笔迹,所以input形式如下
input形式
cpp处理代码
#include<iostream>
#include<fstream>
#include<vector>
#include <string>
using namespace std;
string readFromTXT(string& data){
//读取002.txt文件到string中
ifstream infile;
infile.open("002.txt",ios::in);
if(!infile)
{
cout<<"open error!"<<endl;
exit(1);
}
infile>>data;
infile.close();
return data;
}
void string2ThreeDimensionalMatrix(string& data,vector<vector<vector<float>>>& iniStroke){
for (int i = 0;i<data.size();i++){
vector<vector<float>> iniPoints;
while (data[i] != '}'){
vector<float> point;
while (data[i] != '}'){
while (data[i] == '{'){
i++;
}
string temp;
while (data[i] != ',' && data[i] != '}'){
temp += data[i];
i++;
}
point.push_back(stof(temp));
if (data[i] == ','){
i++;
}
}
iniPoints.push_back(point);
if (data[i] == '}'){
i++;
}
if (i<data.size()&&data[i] == ',') {
i++;
}
}
iniStroke.push_back(iniPoints);
if (data[i] == '}'){
i++;
}
}
return;
}
int main()
{
string data;
readFromTXT(data);
//对读入的data进行处理,去除头尾的括号
data.erase(0,1);
data.erase(data.size()-1,1);
vector<vector<vector<float>>> iniStroke;
string2ThreeDimensionalMatrix(data,iniStroke);
return 0;
}