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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
hatko
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 14
#1

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

15.02.2013, 23:56. Просмотров 2683. Ответов 25
Метки нет (Все метки)

Есть огромный файл с текстом, расширение *.txt. Как его можно переписать в двоичный код? Как вообще значение какой-то переменную можно записать не текстом, а кодом? Не в ASCII кодировке, а в двоичном коде. Чтобы при открытии блокнотом выводило каракули короче. ПОМОГИТЕ КТО НИБУДЬ. Считываю файл в поток. Он пишет его все равно текстом. Как это изменить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 23:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос С++ записать в файл двоичный код (C++):

Создать текстовый файл и записать в двоичный файл - C++
В программах необходимо использовать только динамические структуры. 1. Написать первую программу, которая считывает информацию из...

Записать в двоичный файл n случайных целых чисел - C++
записать в двоичный файл n случайных целых чисел, принадлежащих отрезку , в текстовый файл записать случайные целые числа, принадлежащие...

Создать двоичный файл и записать в него 15 чисел - C++
1.создать двоичный файл и записать в него 15 чисел.из исходного файла сформировать массивы чёт. и нечёт. , определить наибольшее чётное и...

Создать двоичный файл и записать в него n целых чисел - C++
Первая программа должна сформировать двоичный файл. Вторая – считать данные из этого файла, выполнить соответствующие вычисления...

Создать двоичный файл и записать в него n целых чисел - C++
Помогите пожалуйста, срочно. Создать двоичный файл и записать в него n целых чисел. Из исходного файла сформировать массивы четных и...

Создать двоичный файл и записать в него n целых чисел - C++
Создать двоичный файл и записать в него n целых чисел. Из исходного файла сфор- мировать массивы четных и нечетных чисел. Определить...

25
hatko
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 14
16.02.2013, 01:22  [ТС] #16
альсав, мне все равно что он из себя представляет..мне нужно не важно для чего, не важно как, получить из него бинарный файл..сколько же ты меня доставать будешь?

мне НИ КАПЕЛЬКИ не интересно какая между этими файлами разница, мне КЛАСТЬ на то, что пишет википедия..просто записать в файл не ASCII символы, а двоичный код..

программа работает для маленьких файлов..мне нужно это же самое сделать с файлом в 2 метра..что нужно изменить в коде?..
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.02.2013, 01:28 #17
Небольшое пояснение напоследок дай и я отстану. Ты пишешь, что программа работает для маленьких файлов. Берёшь небольшой текстовый файл, записываешь его в другой файл и получаешь то, что ты хочешь? Так?
0
hatko
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 14
16.02.2013, 01:36  [ТС] #18
нет, уже вижу, что не то..какой-то левый текст..не тот, что нужен
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.02.2013, 01:40 #19
Открой секрет, для чего? Трудно что сказать, если непонятна идея.
0
hatko
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 14
16.02.2013, 01:44  [ТС] #20
это показывать нужно..давай скайп - скину что есть и что нужно

Добавлено через 19 секунд
мыло лучше, а не скайп

Добавлено через 22 секунды
мыло лучше, а не скайп
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.02.2013, 01:47 #21
Мне некуда тебе скинуть. Мне в личку напиши своё мыло.
0
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
16.02.2013, 02:35 #22
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.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.02.2013, 02:41 #23
vua72, я посмотрел его файлы. Там задача совсем другая. Записать в файл сначала вперемежку строки и числа, потом одни числа.
0
hatko
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 14
16.02.2013, 02:58  [ТС] #24
vua72, напиши мне на мыло пожалуйста.
0
HighPredator
16.02.2013, 15:09
  #25
 Комментарий модератора 
Обсуждение задач ведите в теме. Тут же и поясняющие материалы выкладывайте.
0
Van111
209 / 188 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
16.02.2013, 17:09 #26
hatko, меня поражает ваша дружба с поисковиком)
https://www.google.ru/#hl=ru&newwind...w=1280&bih=933
http://ci-plus-plus-snachala.ru/?p=86
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
using namespace std;
 
int main ()
{
    int y=0; //Y будем записывать в файл
    cout<<"Y = ";cin>>y; //Вводим число, которое нужно сохранить в файл
    ofstream out("C://1.txt",ios::binary|ios::out); //Открываем файл в двоичном режиме для записи
    out.write((char*)&y,sizeof y); //Записываем в файл число y
    out.close(); //Закрываем файл
 
    
    return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от Van111 Посмотреть сообщение
out.write((char*)&y,sizeof y)
вместо sizeof можно использовать функция для определия разрядности вашего числа в двоичной системе(по моему это логарифм называется)
0
16.02.2013, 17:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 17:09
Привет! Вот еще темы с ответами:

Создать новый двоичный файл и записать в него матрицу - C++
Доброе утро Всем!Помогите решить задание! На языке СИ в Двоичном файле записанна по строкам матрица 20*20 типа int. Создать новый...

Как создать двоичный файл и записать в него n целых чисел? - C++
народ!как создать двоичный файл и записать в него n целых чисел. Из файла сформировать массив, записав в него только ненулевые компоненты,...

Записать в двоичный файл строку, потом считать ее и вывести на экран - C++
Здравствуйте! Помогите советом или реализацией)

Записать в двоичный файл столбцы массива, у которых первый и последний элементы имеют одинаковые значения - C++
Создать двоичный файл и записать в него двумерный целочисленный массив размером n×m. Записать в двоичный файл F2 те столбцы массива, у...


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

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

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