C++读取坐标文件

来源:互联网 发布:网站域名购买 编辑:程序博客网 时间:2024/04/29 21:48
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
using namespace std;
/***************
vector<pair<int,int > >tmp(Point[0]);        //构造p1所有坐标的副本tmp;  Point[0]储存第一个图形的所有坐标
cout<<tmp[1].first<<" "<<tmp[1].second;  //tmp[1]为第一个图形的第二组坐标 
****************/
int main()
{
vector<vector<pair<int,int> > > Point;   //存各图顶点
vector<string> GraphName;  //存各图名字
vector<int> PointNumber;  //存各图顶点数
ifstream input;
string filename="D:\\graph.txt";  //文件路径
input.open(filename.c_str());

if(!input)
cout<<"OPEN FAILTURE!";
string name;
int number,i=0;   
int xPoint,yPoint;
while(input>>name)
{
GraphName.push_back(name);
input>>number;
PointNumber.push_back(number);
int n=PointNumber[i];
vector<pair<int,int> > Middle;
while(n--)
{
input>>xPoint>>yPoint;
Middle.push_back(make_pair(xPoint,yPoint));
}
Point.push_back(Middle);
i++;
}
ofstream output ("D:\\newgraph.txt") ;
if(output.is_open())
{
for(int val=0;val<i;val++)
   {
output<<GraphName[val]<<"\t"<<PointNumber[val]<<"\t";
vector<pair<int,int> >::iterator iter=Point[val].begin(),it=Point[val].end();
while(iter!=it)
{
output<<"("<<iter->first<<","<<iter->second<<") ";
iter++;
}
output<<endl;
   }
}
return 0;
}



1 0