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

С++ записать в файл двоичный код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Геометрическая фигура http://www.cyberforum.ru/cpp-beginners/thread787244.html
Как , если дано уравнение двумя переменными, изобразить фигуру? Напишите код плиз, для уравнения y+x<3(|y|+x^2) Добавлено через 45 минут Помогите!
C++ Классы. Объявить массив динамически и сделать указатель на объект в динамической памяти Я создал классы: ПЕРСОНА, служащий, роботодатель, инженер. Но мне нужно в программе (после int main() 69 строка) объявить массив динамически и сделать указатель на объект в динамической памяти. Помогите пару строчек исправить. Вот код:#include "stdafx.h" #include<iostream> #include<conio.h> #include<string.h> #include<string> using namespace std; class Persona { public: http://www.cyberforum.ru/cpp-beginners/thread787235.html
C++ Книга для программиста
Я знаю, что может и не там тему создал, но все же) Как известно программирования и математика тесно связаны, а у меня с математикой не так хорошо как хотелось) И я хотел спросить: какую книгу по математическому анализу нужно выучить? P.S. Модереторы, будьте добры, не удаляйте тему) Или поместите туда куда нужно.
Вычислить значение выражения C++
подскажите пожалуйста как объявить цикл и переменные
C++ Вычислить периметр и площадь треугольника http://www.cyberforum.ru/cpp-beginners/thread787202.html
Гипотенуза треугольника равна 1,8 м, один из углов α = 52°40'. Вычислить периметр и площадь треугольника. Написать универсальную программу, решающую задачу для произвольных значений указанных параметров.помогите пожалуйста
C++ Как содержимое файла *.txt переписать в двоичном коде в другой файл? Как содержимое файла *.txt переписать в двоичном коде в другой файл? Я делаю это сл. образом: #include <iostream> #include <fstream> using namespace std; int main() { подробнее

Показать сообщение отдельно
vua72
410 / 410 / 83
Регистрация: 28.11.2010
Сообщений: 1,158
16.02.2013, 02:35     С++ записать в файл двоичный код
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
47
48
49
#include <iostream>
#include <fstream>
 
int fileL(std::fstream & file) {
    file.seekg(0, std::ios::end);
    int lF = file.tellg();
    if (file.eof())
        file.clear();
    file.seekg(0, std::ios::beg);
    return lF;
}
 
using namespace std;
 
int main() {
    fstream file("1.txt", ios_base::in);
    char *buffer;
    int flen = fileL(file);
    buffer = new char[flen];
    file.read(buffer, flen);
    file.close();
    ///
    cout << flen << endl;
    fstream os;
    os.open("text.bin", ios_base::out | ios_base::binary);
    int i = 0;
    while (i < flen) {
        buffer[i] ^= 0x75;
        os.write((char *) &buffer[i], 1);
        i++;
    }
    os.clear();
    os.close();
    ////
    os.open("text.bin", ios_base::in | ios_base::binary);
    flen = fileL(os);
    os.read(buffer, flen);
    fstream is("2.txt", ios_base::out | ios_base::binary);
    i = 0;
    while (i < flen) {
        buffer[i] ^= 0x75;
        os.write((char *) &buffer[i], 1);
        i++;
    }
    is.write(buffer, flen);
    is.close();
    delete[] buffer;
    return 0;
}
Добавлено через 5 минут
Первый раз был не прав, нужно было os.write((char *) &buffer[0], filelength);
Но, в начале мы читаем как бинарный файл, именно как массив символов, если у нас текст т в файле, то при записи мы получим тот же текст. Можно сделать простейшее кодирование, тогда на выходе получите абракадабрe (как в примере), если просто нужно исказить информацию, можно сжать данныев памяти и записать в новый файл, но, честно, не знаю стандартного способа, наверное или самому, или zlib.
 
Текущее время: 22:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru