C++ .В файле данные расположены следующим образом :
Код:
Radius: 1 Coord point: (5;10)
Radius: 5 Coord point: (1;7)
Radius: 6 Coord point: (5;8)
Radius: 7 Coord point: (0;7)
Radius: 9 Coord point: (8;9)
Мне нужно записать данные(радиус и координаты(только значения)) в следующие массивы
Код:
arrFigure[i].built.X
arrFigure[i].built.Y
arrFigure[i].radius
Как это сделать? Это должна быть функция Inputfromfile для моей программы.
Вот полный код программы :
Код:
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <windows.h>
#include <string>
using namespace std;
struct coordinates
{
double X;
double Y;
};
struct circle
{
double radius;
coordinates built;
void show()
{
cout << "Radius: " << radius << " cm " << endl;
cout << "Coord point: " << "(" << built.X << ";" << built.Y << ")" << "\n\n\n";
;
}
};
//------Global Variable---------
int MAX;
circle* arrFigure = NULL;
//-------------------------------------
void bubble()
{
int i, j;
for (i = 0; i < MAX - 1; ++i)
{
for (j = 0; j < MAX - 1; ++j)
{
if (arrFigure[j + 1].radius < arrFigure[j].radius)
{
circle tmp = arrFigure[j + 1];
arrFigure[j + 1] = arrFigure[j];
arrFigure[j] = tmp;
}
}
}
}
void InputData(){
cout << "Enter the number of circles: ";
cin >> MAX;
delete[] arrFigure;
arrFigure = new circle[MAX];
for (int i = 0; i < MAX; i++){
arrFigure[i].built.X = rand() % 11;
arrFigure[i].built.Y = rand() % 11;
arrFigure[i].radius = rand() % 11;
}
}
void OutputSortArr() {
cout << "Output sort array " << endl;
for (int i = 0; i < MAX; i++){
arrFigure[i].show();
}
}
void OutputGenerate(){
cout << "Output generate array" << endl;
for (int i = 0; i < MAX; i++){
arrFigure[i].show();
}
}
void RecordToFile(){
ofstream fout("E:\cppstudio.txt");
for (int i = 0; i < MAX; i++){
fout << "Radius: " << arrFigure[i].radius << "\t";
fout << "Coord point: " << "(" << arrFigure[i].built.X << ";" << arrFigure[i].built.Y << ")" << "\n\n";
}
fout.close();
system("pause");
}
void Readingfile(){
setlocale(LC_ALL, "rus");
char buff[35]; // buffer
ifstream fin("E:\cppstudio.txt");
if (!fin.is_open()) // esli file ne otkrut
cout << "Файл не может быть открыт!\n";
else
{
while (!fin.eof()){
fin.getline(buff, 50);
cout << buff << endl;
}
fin.close();
}
}
int menu() {
int menu;
do{
cout << "Choose menu item" << endl;
cout << "1 - input data " << endl;
cout << "2 - Output generate array" << endl;
cout << "3 - Output sort array" << endl;
cout << "4 - Sort arr" << endl;
cout << "5 - Record to file" << endl;
cout << "6 - Reading file" << endl;
cout << "7 - Input from file" << endl;
cin >> menu;
switch (menu){
case 1:InputData(); break;
case 2:OutputGenerate(); break;
case 3:OutputSortArr(); break;
case 4:bubble(); break;
case 5:RecordToFile(); break;
case 6:Readingfile(); break;
case 7:; break;
default: menu = 0;
}
} while (menu != 0);
return 0;
}
int main()
{
setlocale(LC_ALL, "rus");
menu();
delete[] arrFigure;
system("pause");
return 0;
}