Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
factura122
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 70
#1

Как записать данные из файла в двумерный массив? - C++

08.01.2014, 09:31. Просмотров 1101. Ответов 2
Метки нет (Все метки)

Дан файл координат вершин ломаной линии на плоскости. Определить, имеет ли ломаная линия самопересечения, если да, то записать в файл G координаты точек самопересечения. Реализовать на двоичных файлах с помощью структур данных (struct).

1)записать бинарный файл с координатами(с этим проблем нету)
2)считать эти координаты из файла( вот здесь проблема, не знаю как считать в двумерный массив)
3 Формулу расчёта знаю разберусь
запись в бинарном виде в файл G(с этим тоже разберусь)
Вот код программы
C++
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
#include <conio.h>
#include <stdio.h>
#include <locale.h>
FILE *f,*g;
struct Line
{
int X,Y;
};
void main()
{
setlocale(LC_ALL,"Russian");
printf("ЗАПОЛНИТЕ ФАЙЛ\n");
printf("Количество вершин: ");
int n;
Line lom;
f=fopen("data.line","wb");
scanf("%d",&n);
if(n<=2)
{
printf("Ломанная линия не может состоять из двух точек:");
_getch(); 
return ;
}
printf("Введите значения координат:\n ");
for(int i=0;i<n;i++)
{
scanf("%d%d",&lom.X,&lom.Y); 
fwrite(&lom.X,sizeof(Line),1,f);
fwrite(&lom.Y,sizeof(Line),1,f);
}
 
fclose(f);
printf("____________________________________________________ ____________________________\n");
 
printf("Определяем, имеет ли линия самопересечения\n");
int *Otr,*Peresech,*x;
Otr=new int[n];
_getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 09:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как записать данные из файла в двумерный массив? (C++):

Как считать данные с файла и записать в массив? - C++
В файле данные расположены следующим образом : Radius: 1 Coord point: (5;10) Radius: 5 Coord point: (1;7) Radius: 6 Coord...

Как записать данные из файла в массив структур? - C++
В коде я ввожу данные и их записывает в файл, помогите пожалуйста записать данные из файла в массив структур #include &lt;conio.h&gt; ...

Ввести данные в файл, и записать данные с файла в массив структур - C++
Ввести все данные в файл, и записать данные с файла в структуру. Помогите ввести и вывести структуру из файла. Допускается - и желательно...

Записать текст из файла в двумерный массив - C++
Добрый день. Нужно загрузить текст из файла в двумерный массив. Например, текст вот такой dghgh sfhgsghf shshghgjsfjf ...

Как записать данные из одномерного массива в двумерный? - C++
Подскажите пожалуйста новичку, как записать данные из одномерного массива в двумерный? уже голову ломаю 2 недели... Есть вот такой...

Считать данные из текстового файла и записать их в массив float-ов - C++
Помогите пожалуйста!!!Очень нужно! как считать данные из txt файла и записать их в массив float на языке с++.

2
egor2116
450 / 374 / 42
Регистрация: 20.01.2013
Сообщений: 1,134
08.01.2014, 12:24 #2
Как то так, не проверял, самопересечение определите сами.
C++
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
#include <iostream>
#include <fstream>
 
struct Point
{
  float x, y;
};
 
int main()
{   
 std::ofstream out("data.dat", std::ios_base::out | std::ios_base::binary);
 
 const size_t SIZE = 5;
 Point * point = new Point[SIZE];
 
 for(int i = 0; i < SIZE; ++i) //ГЇГЁГёГҐГ¬ Гў ГґГ*éë
 {
   std::cout << "Point # " << i + 1 << std::endl;
   std::cout << "Input x : "; std::cin >> point[i].x; 
   std::cout << "Input y : "; std::cin >> point[i].y;
   if(out)
     out.write((char *)&point[i], sizeof(point) / SIZE);
 }
      
 delete [] point; point = NULL;
 point = new Point[SIZE];
 out.close();
 
 std::ifstream in("data.dat",  std::ios_base::in | std::ios_base::binary);
 
 for(int i = 0; i < SIZE / 2; ++i) // Г·ГЁГІГ*ГҐГ¬ ГЁГ§ ГґГ*éëГ*
   in.read((char *)&point[i], sizeof(point) / SIZE);
 
 for(int i = 0; i < SIZE; ++i) //âûâîäèì ïðî÷èòГ*Г*îå Г*Г* ГЅГЄГ°Г*Г*
 {
   std::cout << "Point # " << i + 1 << std::endl;
   std::cout << "Input x : " << point[i].x << std::endl; 
   std::cout << "Input y : " << point[i].y << std::endl;
 }
 
 delete [] point; point = NULL;
 in.close();
    
  system("PAUSE");
  return 0;
}
1
factura122
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 70
09.01.2014, 11:55  [ТС] #3
Спасибо вы мне помогли, конечно пришлось переделывать на синтаксис чистого C, это у нашего препода шиза такая)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2014, 11:55
Привет! Вот еще темы с ответами:

Считать из файла данные определенного типа и записать в массив - C++
Подскажите, пожалуйста. Допустим, у меня есть файл text.txt, в котором есть цифры/буквы/символы. Задача сводится к следующему: мне нужно...

Как записать двумерный массив в файл? - C++
Здравствуйте. У меня есть такой код: #include &lt;iostream&gt; using namespace std; #include &lt;conio.h&gt; //Заголовочный файл conio.h...

Как правильно записать двумерный динамический массив? - C++
Вот есть кусок кода: int n; cout&lt;&lt;&quot;Введите размерность матрицы: &quot;&lt;&lt;endl; cin&gt;&gt;n; int *c=new int; ...

Записать числа из файла в двумерный массив или вектор вроде такого vector<vector<int>> - C++
Добрый день, подскажите пожалуйста как лучше и проще считывать файл. в файле записаны числа, разделенные пробелами и запятыми: 1, 2, 3,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru