Форум программистов, компьютерный форум CyberForum.ru

Бинарный файл, содержащий координаты точек плоскости - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив символов. (Алгоритм нахождения прямоуг - в) http://www.cyberforum.ru/cpp-beginners/thread788107.html
Привет, CyberForum! :) Есть задачка. Там говориться, что массив кодируется символами ( #, +, =, ?) и '.' - это пустые места. Каждый раз массив задается рандомно. И нужно посчитать сколько прямоуг. в массиве. Так вот меня смутило то, как можно написать такой алгоритм, если массив каждый раз разный? Может есть идейки? А то я в тупике :wall: P.S. Готового кода не прошу, просто идейки с...
C++ Файлы и функции Доброго времени суток. У меня есть следующий код #include <stdio.h> #include <conio.h> #include <iostream> #define size 2 #define buf 256 #define dSize 10 #define NULL 0 http://www.cyberforum.ru/cpp-beginners/thread788088.html
C++ from C# to C++
Собственно сабж. Есть код на шарпе, хотелось бы перевести его на плюсы, но своих мозгов не хватает (или опыта?). using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace aias_lab4 { class Program
C++ Для чего нужен шаблон <typename T>
Здравствуйте. template <typename T> T CLAMP(const T& value, const T& low, const T& high) { return (value < low) ? low : ((value > high) ? high : value); } Из книги я понял,что это шаблон,но для чего,я так и не смог разобрать,подскажите пожалуйста.
C++ Базовая графика в С++ http://www.cyberforum.ru/cpp-beginners/thread787961.html
Всем доброго времени суток, уважаемые товарищи заслуженные программисты! С++ изучаю самостоятельно, как и программирование вообще, потому, столкнувшись с вопросом, не имею возможности обратиться ни к кому, кроме как к вам. Уповаю на снисхождение. Задача заключается вот в чём: у моего близкого друга, обретающегося в далёком Брюсселе, через месяц день рождения, в связи с тем появилась...
C++ Осуществите в классе перегрузку метода proizved() c различным количеством параметров Осуществите в классе перегрузку метода proizved() c различным количеством параметров так, что если параметров два, они перемножаются, если параметров 3, то первые два аргумента перемножается, а .третий добавляется к произведению. подробнее

Показать сообщение отдельно
palva
 Аватар для palva
2373 / 1595 / 190
Регистрация: 08.06.2007
Сообщений: 6,364
Записей в блоге: 4
17.02.2013, 12:00     Бинарный файл, содержащий координаты точек плоскости
Ну если пофантазировать...
Точка на плоскости задается двумя координатами, то есть двумя числами типа double. Файл бинарный, значит, координата точки представлена в точности теми байтами какими число представлено в оперативной памяти компьютера: 8 байт первая координата, 8 байт вторая координата, затем идут координаты второй точки 16 байтов и т. д. Таким образом размер файла в байтах должен делиться на 16 и результат деления равен количеству точек, который файл содержит. Дальше используйте какие-нибудь функции, пригодные для ввода-вывода двоичных данных. Здесь вы должны сказать какого типа функции вам более привычны read/write, форматированный ввод/вывод си или потоковый ввод/вывод си++ (это я еще не все варианты перечислил), тогда можно будет говорить о реализации вывода и ввода.

Добавлено через 59 минут
Один из вариантов:
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main() {
    double d1=3.25, d2=-4.66;
    double x,y;
    int i, n;
    // Вывод файла
    ofstream outfile ("file.bin", ios::binary);
    outfile.write((char*)&d1, 8);
    outfile.write((char*)&d2, 8);
    outfile.close(); 
    // Ввод файла
    ifstream infile ("file.bin", ios::binary|ios::ate);
    n = infile.tellg();
    cout << n << '\n'; // длина файла
    n /= 2*sizeof(double);
    infile.seekg(0, ios::beg);
    for(i=0; i<n; i++) {
        infile.read((char*)&x, sizeof(double));
        infile.read((char*)&y, sizeof(double));
        cout << x << ' ' << y << '\n';
    }
    infile.close(); 
    return 0;
}
 
Текущее время: 04:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru