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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 5.00
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
#1

Бинарные файлы.. - C++

02.05.2009, 17:12. Просмотров 2541. Ответов 8
Метки нет (Все метки)

Доброго времени суток, господа!
Возникла проблемка с открытием бинарного файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
           char stroka[100];
    fstream bin_file;
    while (1)
    {
        cout << "Binarnie zapisi 1.0\nVvedi adress binfaila\n";
        cin.getline(stroka, 100);
        if (cin.fail())
        {
            cin.clear();
            cin.ignore(555,'\n');
        }
        bin_file.open(stroka, ios::binary | ios::in | ios::out);
                       if (! bin_file)
                      {
                      cout << "Ne mudri, adress vvodi!))\n";
                 continue;
                      }
        break;
          }
То есть данный фрагмент должен по идее спрашивать адрес, создавать или открывать бинарный файл, если возникают какие-то проблемы, повторять попытку открыть файл.
НО: почему то даже при вроде бы правильном адресе он начинает цикл сначала!
(Я пробовал stroka="C:\bin.bin" )
Подскажите, пожалуйста, в чем ошибка?
Заранее спасибо!))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2009, 17:12     Бинарные файлы..
Посмотрите здесь:

Бинарные файлы в С++ - C++
У меня есть програмка которая находит наименьший общий делитель числа#include&lt;iostream&gt; using namespace std; int main() { int n; ...

Бинарные файлы - C++
Прошу помочь с новыми задачками

Бинарные файлы - C++
1.Записать в файл N действительных чисел a1, a2, …,an. Организовать новый файл , элементы которого вычисляются по формуле:...

Бинарные файлы - C++
Помогите пожалуйста написать программы. Исходный файл формировать программно. Количество элементов исходного файла неизвестно. В...

Бинарные файлы c++ - C++
Здравствуйте. Нужно в бинарный файл записать строку (нового стиля), единственное что известно, так это то, что в строке не более 16...

Fstream и бинарные файлы - C++
вообщем вопрос такой.. как читать строки из бинарного файла, и как записывать в бинарный файл строки используя fstream, и можно ли...

Бинарные файлы. Чтение - C++
Дан бинарный файл, компонентами которого являются массивы действительных чисел. Вычислить для каждого массива число отрицательных...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
02.05.2009, 17:16     Бинарные файлы.. #2
Цитата Сообщение от VorobeY1326 Посмотреть сообщение
(Я пробовал stroka="C:\bin.bin" )
А так "C:\\bin.bin"?
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
02.05.2009, 17:28  [ТС]     Бинарные файлы.. #3
Нет,Gravity, проблема не в этом..
Попробовал для очистки совести и так, но тоже не помогло..
Просто я имел ввиду, что ввожу "С:\bin.bin", а в переменной то именно то, что ты сказал - "C:\\bin.bin".
Извините, если что за описку..))
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
02.05.2009, 18:50     Бинарные файлы.. #4
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
int main()
{
    char stroka[100];
    ofstream bin_file;
    while (true)
    {
        cout << "Binarnie zapisi 1.0\nVvedi adress binfaila\n";
        cin.getline(stroka, 100);
        if (cin.fail())
        {
            cin.clear();
            cin.ignore(555,'\n');
        }
        cout << stroka;
        bin_file.open(stroka);
        bin_file << stroka;
        if (!bin_file)
        {
            cout << "Ne mudri, adress vvodi!))\n";
            continue;
        }
        break;
    }
 
    bin_file.close();
    return 0;
}
попробуй так... так будет работать?
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
03.05.2009, 12:41     Бинарные файлы.. #5
Ошибка из-за ios::binary
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
07.05.2009, 18:00  [ТС]     Бинарные файлы.. #6
kazak, а в чем именно?
И как исправить?
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
08.05.2009, 04:23     Бинарные файлы.. #7
Очень скудная информацию по этому поводу, но методом "тыка" удалось установить, ios::binary работает только с ifstream и ofstream.
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
10.05.2009, 13:09  [ТС]     Бинарные файлы.. #8
Прочитал правила форума..))
"Если самостоятельно нашли решение проблемы - напишите"
Нашел, пишу..
Дело оказалось в том, что если ставить флаг ios::in, необходимый для работы seekp(), то файл должен существовать!
То есть если файл существует, то все работает как надо, а если нет, то надо сначала его создать, а потом уже открыть в режиме in | out.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2009, 17:18     Бинарные файлы..
Еще ссылки по теме:

Fstream и бинарные файлы - C++
Необходимо скопировать картинку. Не знаю как сделать.

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

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

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

Бинарные файлы и структуры - C++
Доброго времени суток. Прошу ответить на пару вопросов: 1) Почему результат операции sizeof, применённый к структуре, не совпадает с...


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

Или воспользуйтесь поиском по форуму:
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
10.05.2009, 17:18     Бинарные файлы.. #9
Плюс еще для ios::binary лучше использовать операторы
write ( memory_block, size );
read ( memory_block, size );
вместо операторов поместить в поток << и взять из потока >>.
Yandex
Объявления
10.05.2009, 17:18     Бинарные файлы..
Ответ Создать тему
Опции темы

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