Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126

Считывание бинарного файла

17.01.2016, 02:17. Показов 2609. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

Помогите пожалуйста найти проблему, мне нужно вначале записать текст в бинарный файл а затем считать его, записывает вроде нормально, но вот со считыванием проблема,

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
char* text = "kot u4enyy - no dereve sidit!";
cout<<"Please enter the name of The file to open!";
char * name=new char(0);
cin>>name;
char* path=new char();
 
    strcpy(path,"C:");
    strcat(path,"");
    strcat(path, name);
    strcat(path, ".bin");
    
fstream myFile (path, ios::in | ios::out | ios::binary);
    myFile.write (text, strlen(text));
    myFile.close();
 
   myFile.open (path, ios::out | ios::binary);
 
  int length = myFile.tellg();
 
  char* cross = new char[length];
  cross[0] = '\0';
    if (!myFile.read (cross, length)) 
    {
    cout<<"Error!!!";   
    }
 
    myFile.close();
 
    cout<<endl<<cross;
Заранее спасибо.

 Комментарий модератора 

Melany, пожалуйста, прочитайте правила форума и постарайтесь впредь их соблюдать:
П. 4.9. Используйте тэги форматирования текста для удобства восприятия ваших сообщений другими пользователями.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.01.2016, 02:17
Ответы с готовыми решениями:

Считывание из бинарного файла
СЧИТАТЬ ИЗ БИНАРНОГО ФАЙЛА ВСЕ ВЕЩЕСТВЕННЫЕ ЧИСЛА В МАССИВ И ВЫВЕСТИ ЕГО НА ЭКРАН. #include &lt;iostream&gt; #include &lt;fstream&gt; ...

Считывание бинарного файла
Здравствуйте! Изначально нужно было прочитать почисленно текстовый файл и забить его в массив. Но т.к. это не получилось, решил прочитать...

Запись и считывание из бинарного файла
Допустим я реализовываю АТД - контейнер. Там будет функция обновления (Все данные скопировать в файл на жестком дискке, а потом обратно)....

5
103 / 82 / 78
Регистрация: 11.05.2015
Сообщений: 201
17.01.2016, 02:55
Лучший ответ Сообщение было отмечено Melany как решение

Решение

Цитата Сообщение от Melany Посмотреть сообщение
char* text = "kot u4enyy - no dereve sidit!";
Попробуй эту строчку поменять на эту
C++
1
chat text[] =  "kot u4enyy - no dereve sidit!";
1
24 / 24 / 7
Регистрация: 25.04.2013
Сообщений: 195
17.01.2016, 03:19
Лучший ответ Сообщение было отмечено Melany как решение

Решение

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
char* text = "kot u4enyy - no dereve sidit!";
 cout<<"Please enter the name of The file to open!";
 char * name=new char(0);
 cin>>name;
 char* path=new char();
 
 strcpy(path,"C:");
 strcat(path,"");
 strcat(path, name);
 strcat(path, ".bin");
 
 fstream myFile (path, ios::in | ios::out | ios::binary);
 myFile.write (text, strlen(text));
 myFile.close();
 
 myFile.open (path, ios::out | ios::binary);
 
 int length = myFile.tellg();
 
 char* cross = new char[length];
 cross[0] = '\0';
 if (!myFile.read (cross, length)) 
 {
 cout<<"Error!!!"; 
 }
 
 myFile.close();
 
 cout<<endl<<cross;
1
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
17.01.2016, 11:22  [ТС]
ivan37,
Спасибо, но это изменение к сожалению не помогло, программу вышыбает,,

Добавлено через 5 минут
kuza84, Спасибо, но в данном случае в файл вообще ничего не записывается, так как length равна 0,
0
 Аватар для uhx
60 / 60 / 19
Регистрация: 11.07.2013
Сообщений: 305
17.01.2016, 11:46
Лучший ответ Сообщение было отмечено Melany как решение

Решение

C++
1
myFile.open (path, ios::out | ios::binary);
C++
1
2
3
4
    if (!myFile.read (cross, length)) 
    {
    cout<<"Error!!!";   
    }
???
Вы открываете файл под вывод, а затем пытаетесь прочитать информацию из него.

Добавлено через 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 <Windows.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
int main()
{
    const char fileName[64] = "data.bin";
 
    char inputData  [128];
    char outputData [128];
 
    printf( "Enter data: " );
    scanf( "%s", outputData );
 
    std::ofstream ofs( fileName, std::ios::binary );
    if( ofs.is_open() )
    {
        ofs.write( outputData, strlen(outputData) + 1 );
        ofs.close();
 
        std::ifstream ifs( fileName, std::ios::binary );
        if( ifs.is_open() )
        {
            int length = sizeof( inputData );
 
            ifs.read( inputData, length );
 
            printf( "inputData:\n%s\n", inputData );
 
            ifs.close();
        }
        else
        {
            printf( "Can't get data from '%s'\n", fileName );
        }
    }
    else
    {
        printf( "Can't put data in '%s'\n", fileName );
    }
 
    system( "pause > nul" );
 
    return 0;
}
1
21 / 4 / 2
Регистрация: 05.07.2015
Сообщений: 126
17.01.2016, 14:18  [ТС]
uhx, Спасибо огромное, только один вопрос, в месте, где выводиться inputData, после считывания файла, почему-то выводиться только первая часть, до пробела, все что после - его нет, значит в файл записалась также только часть текста, то есть до пробела, как это поправить?

C++
1
printf( "inputData:\n%s\n", inputData );
Спасибо заранее,

Добавлено через 1 час 14 минут
uhx, Спасибо, я уже разобралась со своим вариантом, благодаря Вашему примеру!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2016, 14:18
Помогаю со студенческими работами здесь

Считывание данных из бинарного файла
Доброго времени суток. Моя проблема уже была озвучена в теме. Вот листинг функции которая должна считывать данные из бинарного...

Считывание структуры из бинарного файла
Привет всем, при считывании структуры одной строкой кода и последующим выводом ее на экран выводятся непонятные символы. подскажите, что...

Считывание из бинарного файла и занисение в список
Здравствуйте, уважаемые форумчане. Столкнулся с проблемой считывания из бинарного файла. Только вот не с самим считыванием, а занесением...

Считывание из бинарного файла в массив_не работает!
у меня есть большая программа, где я работаю с бинарными файлами, содержащими список студентов...так вот, я создала бин файл со...

Считывание строки из бинарного файла в string
Привет всем!! Помогите новичку понять почему происходит ошибка при считывании строки из файла. void LoadFile() { string j; ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru