将数据写入到.txt文件
//将数据写入到.txt文件
vector<Point2f> quad_pts;
quad_pts.push_back(Point2f(-602.935, 464.887));
quad_pts.push_back(Point2f(-401.548, 477.997));
quad_pts.push_back(Point2f(-1346.625, 261.575));
quad_pts.push_back(Point2f(-129.836, 283.220));
ofstream f1("Points.txt");//#include <fstream>
char savePoints[100];//字符数组
strcpy_s(savePoints, "quad_pts");
f1 << savePoints << endl;
for (int i = 0; i < quad_pts.size(); i++)
{
sprintf_s(savePoints, "Px%fy%f", quad_pts[i].x, quad_pts[i].y);
f1 << savePoints << endl;
}
将.txt文件数据读入到C++
//从.txt读入数据
ifstream myFile;
myFile.open("Points.txt");
char output[100];
if (myFile.is_open())
{
while (!myFile.eof())
{
myFile >> output;
cout << output << endl;
}
}
myFile.close();
得到两个标记字符串之间的那部分字符串
std::string cf_getMiddleStr(std::string srcStr, std::string StartMarkStr, std::string EndMarkStr)
{
size_t startPos, endPos, length;
startPos = srcStr.find(StartMarkStr, 0);
endPos = srcStr.find(EndMarkStr, 0);
length = endPos - startPos - StartMarkStr.size();
std::string resStr = srcStr.substr(startPos + StartMarkStr.size(), length);//第二个参数表示长度
return resStr;
}
得到标记字符串之前的那部分字符串
std::string cf_getStartStr(std::string srcStr, std::string EndMarkStr)
{
size_t endPos;
endPos = srcStr.find(EndMarkStr, 0);
std::string resStr = srcStr.substr(0, endPos);
return resStr;
}
得到标记字符串之后的那部分字符串
std::string cf_getEndStr(std::string srcStr, std::string StartMarkStr)
{
size_t startPos, length;
startPos = srcStr.find(StartMarkStr, 0);
length = srcStr.size() - startPos - StartMarkStr.size();
std::string resStr = srcStr.substr(startPos + StartMarkStr.size(), length);
return resStr;
}