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

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

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

Не удаётся открыть файл в бинарном режиме - C++

26.01.2016, 22:10. Просмотров 263. Ответов 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
30
31
32
33
34
35
36
37
38
39
40
#include "stdafx.h"
#include <locale>
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <string.h>
#include <stdio.h>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
 
    string address_current = "1.txt";
    string address_current_bin = "1.bin";
    
    fstream file_current;
    file_current.open(address_current);
    fstream file_current_bin;
    file_current_bin.open(address_current_bin, ios::binary | ios::in);
    
    if (!file_current)
    {
        cerr << "(file_current) could not be opened.\n";
        system ("Pause");
        exit (1);
    }
    if (!file_current_bin)   //эту проверку не проходит
    {
        cerr << "<file_current_bin> could not be opened.\n";
        system ("Pause");
        exit (1);
    }
 
    /* ... */
    
    system ("Pause");
    return 0; 
}
Как я понимаю, файл "1.bin" должен создаться, но он не создаётся, не проходит проверку на ошибку, и соответственно в консоли выдаёт:

C++
1
2
(file_current_bin) could not be opened.
Для продолжения нажмите любую клавишу ...
Пробовал без ключа ios::in, результат тот же самый.

В чём может быть дело?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2016, 22:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не удаётся открыть файл в бинарном режиме (C++):

Как открыть файл для чтения в БИНАРНОМ режиме? - C++
Друзья! Файл, который надо открыть БИНАРНЫЙ, в нём два байта. Содержание файла 33 20 00 00 имя &quot;input&quot; Вот по логике вещей пра...

Запись в файл в бинарном режиме - C++
Есть файл, 1.exe, как его открыть чтоб можно было записать в него свой hex код ?

Как прочитать файл в бинарном режиме по 32 байта - C++
Здравствуйте, как считать файл в бинарном режиме (в двоичной системе счисления) по 32 байта, попутно записывая эти 32 байта в переменную...

Прочитать файл в бинарном режиме с записью результата в string - C++
Привет, как можно прочитать файл в бинарном режиме, но чтоб каждый байт в двоичной СС записывало в переменную типа string ?

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

Файл: Открыть файл в режиме «а+», внести изменения, характеризующие этот режим. - C++
Открыть файл для записи и записать в него произвольную информацию. Закрыть файл. Открыть его же в режиме «а+», внести изменения,...

5
GbaLog-
Любитель чаепитий
3094 / 1433 / 348
Регистрация: 24.08.2014
Сообщений: 5,084
Записей в блоге: 1
Завершенные тесты: 2
26.01.2016, 22:11 #2
Цитата Сообщение от Pashock Посмотреть сообщение
должен создаться, но он не создаётся
Чтобы создать файл с помощью fstream потока надо писать ofstream(nameFile, ios_base::binary);
0
Pashock
0 / 0 / 0
Регистрация: 17.01.2016
Сообщений: 3
26.01.2016, 23:34  [ТС] #3
makfak, вот варианты, которые я попробовал:
C++
1
2
3
4
5
6
7
fstream file_current_bin;
file_current_bin.open("1.bin", ofstream::binary | ofstream::in);
file_current_bin.open("1.bin", ios_base::binary | ios_base::in);
file_current_bin.open("1.bin", ios::binary | ios::in);
file_current_bin.open("1.bin", ofstream::binary);
file_current_bin.open("1.bin", ios_base::binary);
file_current_bin.open("1.bin", ios::binary);
Все они выдают тот же самый результат ...
0
nord_v
329 / 177 / 69
Регистрация: 22.08.2013
Сообщений: 724
27.01.2016, 01:39 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Pashock Посмотреть сообщение
файл "1.bin" должен создаться, но он не создаётся,
Чтобы создавался, нужно открыть для записи:
C++
1
 file_current_bin.open(address_current_bin, ios::binary | ios::out);
А лучше поток создавать для записи:
C++
1
    ofstream file_current_bin(address_current_bin, ios::binary);
2
GbaLog-
Любитель чаепитий
3094 / 1433 / 348
Регистрация: 24.08.2014
Сообщений: 5,084
Записей в блоге: 1
Завершенные тесты: 2
27.01.2016, 09:15 #5
Цитата Сообщение от Pashock Посмотреть сообщение
makfak, вот варианты, которые я попробовал:
C++
1
fstream file_current_bin;
А надо ofstream file_current_bin;
Или как предложил nord_v
C++
1
2
fstream file_current_bin;
file_current_bin.open("1.txt",ios_base::binary | ios_base::out);
0
Pashock
0 / 0 / 0
Регистрация: 17.01.2016
Сообщений: 3
27.01.2016, 21:52  [ТС] #6
nord_v, спасибо, работает!!
0
27.01.2016, 21:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2016, 21:52
Привет! Вот еще темы с ответами:

Работа с файлом в бинарном режиме - C++
Всем здравствуйте. Нужна помощь или подсказка. Есть два файла размером до 200 мегабайт (в принципе размер файла произвольная величина)....

Запись char в бинарном режиме - C++
Пишу в файл две структуры. struct ApRegFileHead { char *rHead; unsigned int version; unsigned int rezerv; }; и

Чтение строки в бинарном режиме - C++
Необходимо прочитать файл .txt в бинарном режиме и записать в строку. ifstream in(FileNames.c_str(),ios::binary); int...

Открытие файла в бинарном режиме - C++
Помогите разобраться. Необходимо реализовать алгоритм шифрования AES128. Всё сделано, только шифруются не файлы, а ввожу в ручную 32...


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

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

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