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

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

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

Как содержимое файла *.txt переписать в двоичном коде в другой файл? - C++

15.02.2013, 22:00. Просмотров 994. Ответов 6
Метки нет (Все метки)

Как содержимое файла *.txt переписать в двоичном коде в другой файл?

Я делаю это сл. образом:
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    fstream file("1.txt", ios::in | ios::out | ios::binary);
 
    file.seekg(0, ios::end);
    int lengthFile = file.tellg();
 
    file.seekg(0, ios::beg);
    char *buffer = new char[lengthFile];
 
    file.read(buffer, lengthFile);
 
    ofstream os("text", ios::binary);
 
    os.write(buffer,lengthFile);
    os.close();
 
    return 0;
}
В итоге получаю файл с обычным текстом. Как это исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2013, 22:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как содержимое файла *.txt переписать в двоичном коде в другой файл? (C++):

Вывести содержимое файла в двоичном коде - C++
Здраствуйте, не могли бы вы помочь с программой? она должна просто показывать битовое представление чисел, записанных в data.dat, но...

переписать содержимое текстового файла в другой текстовый файл,добавляя в начало каждой строки её порядковый номер(с++) - C++
переписать содержимое текстового файла в другой текстовый файл,добавляя в начало каждой строки её порядковый номер

Переписать данные файла input.txt в файл output.txt, отсортировать их в алфавитном порядке по фамилии - C++
Народ меня тут 11 задач мне нужно их подробно прокомментировать какая строчка что делает(пример первая задача) помогите плиз кому не...

В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию - C++
Добрый вечер!!! Я - новичок по работе с С++, помогите, пожалуйста, написать программу на этом языке. В файле input.txt содержатся сведения...

Переписать содержимое текстового файла в новый файл - C++
дан текстовый файл f, переписать содержимое в новый файл g.

Содержимое текстового файла f, разделенное на строки, переписать в текстовый файл g - C++
Содержимое текстового файла f, разделенное на строки, переписать в текстовый файл g, перенося при этом в конец каждой строки все входящие в...

6
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
15.02.2013, 22:53 #2
Вообще-то, текст и записывается в файл в двоичном виде. При открытии (например, Блокнотом) двоичный код выводится в виде символов.
0
hatko
0 / 0 / 0
Регистрация: 15.02.2013
Сообщений: 14
15.02.2013, 23:02  [ТС] #3
alsav22, спасибо за информацию..

вопрос в силе для адекватных пользователей

специально для alsav22 уточняю - необходим файл не в ASCII кодировке, а в двоичном коде..

помогите пожалуйста
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.02.2013, 00:24 #4
Хамить нехорошо. Сами понимаете о чём спрашиваете?
0
3BEPb_TyTa
18 / 18 / 1
Регистрация: 18.05.2010
Сообщений: 83
16.02.2013, 02:35 #5
hatko, вы и правда путаетесь. Текст в любом случае хранится в файле в виде двоичного кода(как и любые другие данные).
0
Gepar
1178 / 534 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
16.02.2013, 03:11 #6
Не тупите, человек хочет считать содержимое в обычном виде, а записать в бинарном
Чтобы жизнь мёдом не казалась готовый код не хочу постить, но у меня завалялся код, который я недавно кому-то делал. Здесь код делает немножко по другому: здесь записываеться бинарный файл, закрывается, а потом читается как бинарный и записывается как обычный. Если чуть-чуть подумать и поменять строки местами то получиться то что вы хотите, ну а если не получиться то постите код сюда, пишите что не получается и я буду рад помочь .
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
 
/*
* 4. Дан двоичный файл, содержащий целые числа.
* Сформировать текстовый файл, в котором эти числа записаны по одному в строке.
* Программа должна производить проверку особых ситуаций при операциях ввода-вывода.
*/
 
int main ()
{
 
  //сначала открыаем файл myfile.bin и пишем туда числа от 1 до 10 в бинарном режиме
  FILE * pFile;
  int buffer[] = { 1,2,3,4,5,6,7,8,9,10 };
  pFile = fopen ( "myfile.bin" , "wb" );
  fwrite (buffer , 1 , sizeof(buffer) , pFile );
  fclose (pFile);//закрываем файл pFile
 
 
  //теперь открывем тот же файл куда мы записали бинарные данные но в режиме чтения (тоже бинарном)
  FILE* bFile = fopen("myfile.bin","rb");
 
  //также открыаваем файл в обычном (не бинарном) режиме чтобы выводить туда результат
  FILE* oFile = fopen("myfile.txt","w");
 
  //по одному числу считываем данные из бинарного файла и сохраняем их в обычный
  int* temp = (int*) malloc(sizeof(int));
  while(!feof(pFile))
  {
      fread(temp,sizeof(int),1,bFile);
      fprintf(oFile,"%i\n",*temp);
  }
 
  //закрываем оба файла
  fclose(bFile);
  fclose(oFile);
 
  //в результате выполнения программы в myfile.txt должны получиться числа от 1 до 10
  return 0;
}
Код кстати на си (того требовала заказчица), если хотите с++ то в общем-то логика работы та же, но функции другие. Хотя могу переписать и на с++ если хотите.
0
vua72
416 / 416 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
16.02.2013, 04:00 #7
Цитата Сообщение от Gepar Посмотреть сообщение
Не тупите, человек хочет считать содержимое в обычном виде, а записать в бинарном
Все это справедливо для численных данных, если речь идет о символах, тут совсем другая история, они УЖЕ байты, их УЖЕ не нужно приводить к char. Числа внутри и на экране совсем немого отличаются, поэтому для чисел проблем нет.

Добавлено через 3 минуты
Двоичный тип - байт - char -> если байт в таблице ASCII или другой, которая отображается на экране - он ОТОБРАЗИТСЯ.
0
16.02.2013, 04:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 04:00
Привет! Вот еще темы с ответами:

Переписать все числа из файлов 1.txt и 2.txt в файл 3.txt - C++
Здравствуйте! Нужна помощь. Есть два текстовых файла 1.txt и 2.txt в них есть числа. реализовать консольное приложение которое...

Дан текстовый файл. Переписать компоненты файла в другой файл, заменив при этом каждое сочетание букв “no” на “on” - C++
Дан текстовый файл. Переписать компоненты файла в другой файл, заменив при этом каждое сочетание букв “no” на “on”. :( Помогите,...

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

Из текстового файла переписать информацию в другой текстовый файл - C++
Как это сделать? например в top.txt написано &quot;1&quot; его нужно переписать скажем в top_new.txt .Как это сделать можно?


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

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

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