1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <utility>
#include <string>
#include <list>
using namespace std;
int main(int argc, char* args[])
{
list<pair<int, pair<int, int> > > farms;
list<pair<int, pair<int, int> > >::iterator it, it2;
pair<int, int> origin = make_pair(691, 299);
string in_filename = "farms.txt";
string out_filemane = "farms_sorted.txt";
ifstream in_file(in_filename.c_str(), ios::in);
if(!in_file.good())
{
cout << "Error while opening file!";
return 1;
}
while(in_file.good())
{
char n = in_file.get();
char temp_1[4] = "";
int temp_2 = 0;
int temp_3 = 0;
int x = 0;
int y = 0;
while(in_file.good() && n != '(')
{
in_file.get(n);
}
if(!in_file.good()) break;
in_file.get(temp_1, 4, '|');
x = atoi(temp_1);
// Moving the get pointer ahead one.
in_file.get();
in_file.get(temp_1, 4, ')');
y = atoi(temp_1);
temp_2 = origin.first - x;
temp_3 = origin.second - y;
temp_2 *= temp_2;
temp_3 *= temp_3;
temp_2 = temp_2 + temp_3;
farms.push_back(make_pair(temp_2, make_pair(x, y)));
cout << temp_2 << " " << x << '|' << y << endl;
}
cout << endl;
for(it = farms.begin(); it != farms.end(); it++);
{
cout << (*it).first << ' ' << (*it).second.first << '|' << (*it).second.second << endl;
}
return 0;
}
|