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

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

Восстановить пароль Регистрация
 
lotos580
1 / 1 / 1
Регистрация: 25.05.2012
Сообщений: 60
08.07.2014, 22:56     Запись бинарного файла - На консоль выводиться дважды последнее прочтенное значение #1
Ошибка: на консоль выводиться дважды последнее прочтенное значение (в данном случае - 20). Подскажите, пожалуйста, как избежать данную проблему?
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
#include <iostream>
#include <fstream>
#include <stdlib.h>
using namespace std;
 
int main()
{
    ofstream myFile1("file.bin", ios::binary);
    if(!myFile1)
    {
        cerr << "err1";
        exit(1);
    }
    for(int i = 0; i <= 20; i++)
    {
        myFile1.seekp(i * sizeof(i));
        myFile1.write(reinterpret_cast<char*>(&i), sizeof(i));
        cout << "sucess record #" << i << endl;
    }
    int a = 0;
    myFile1.close();
    
    ifstream myFile2("file.bin", ios::binary);
    if(!myFile2)
    {
        cerr << "err2";
        exit(1);
    }
    myFile2.seekg(0);
    while(!myFile2.eof())
    {
        myFile2.read(reinterpret_cast<char*>(&a), sizeof(a));
        cout << a << ' ';
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2014, 22:56     Запись бинарного файла - На консоль выводиться дважды последнее прочтенное значение
Посмотрите здесь:

C++ чтение/запись бинарного файла
C++ Работа с бинарными файлами (программка дважды записывает последнее число)
Запись и считывание из бинарного файла C++
Чтение и запись из файла в файл - символ в файле повторяется дважды C++
Запись/чтение бинарного файла C++
Запись и чтение из бинарного файла, объяснить поведение программы C++
C++ Запись бинарного файла
Чтение/запись бинарного файла: необработаное исключение C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4298 / 3719 / 1252
Регистрация: 14.04.2014
Сообщений: 14,542
08.07.2014, 23:07     Запись бинарного файла - На консоль выводиться дважды последнее прочтенное значение #2
Флаг конца файла устанавливается только после неудачного чтения, поэтому повтор.
Надо либо читать циклом for, вычислив количество элементов в файле по его длине, либо добавить проверку на eof() после 32-й строки.
Yandex
Объявления
08.07.2014, 23:07     Запись бинарного файла - На консоль выводиться дважды последнее прочтенное значение
Ответ Создать тему
Опции темы

Текущее время: 00:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru