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

Сохранение и загрузка данных в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Определить для массива A наибольшее значение произведения аj*aj-1 http://www.cyberforum.ru/cpp-beginners/thread1190643.html
Определить для массива А= наибольшее значение произведения аj*aj-1/
C++ Прокомментировать программу #include <conio.h> #include <stdlib.h> #include <graphics.h> #include <iostream.h> class RECTANGLE{ int left,top,right,bottom; public: RECTANGLE(int,int,int,int); void show(); http://www.cyberforum.ru/cpp-beginners/thread1190642.html
Нарисовать квадрат на C++ (желательно для компилятора Dev C++) C++
Всем привет! Надо нарисовать квадрат размером 20 на 20 пикселей красного цвета с координатами x - 100, y - 200 в окне размером 300 на 500 пикселей Задача очень срочная! Помогите пожалуйста!
Конец файла при потоковом считывании C++
if (fin.eof()==0){ cout << "aaa"; int asa; asa = (int)buf; fout.write((char*)buf, sizeof(buf - asa)); } вот что я написал но не работает , мне нужно считать из 8 байт файла и узнать что при следуюшей итерации у нас конец файл будет как лучше сделать?
C++ Задание: дана строка.разработать программу которая будет считать количество слов и букв в предложении http://www.cyberforum.ru/cpp-beginners/thread1190625.html
Всем, здравствуйте! Хочу помочь своей девушке в написании курсовой, и там было это задание, я как бы сам вообще не понимаю, что это такое, т.к. у меня нету программирования, а она сама плохо разбирается! Могу только сказать, что это visual studio 2013 ultimate. пожалуйста помогите кто-нибудь, будем очень благодарны!
C++ Как сделать компоненты базового класса доступными в производном классе, но недоступными вне классов? Как сделать компоненты базового класса доступными в производном классе, но недоступными вне классов? подробнее

Показать сообщение отдельно
Bretbas
156 / 31 / 4
Регистрация: 05.08.2013
Сообщений: 603
Завершенные тесты: 1
27.05.2014, 23:53     Сохранение и загрузка данных в файл
Добрый вечер всем. Столкнулся с какой-то элементарной проблемой, и не могу никак понять в чем траблы.
Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
int main()
{
    int k = 0;
 
    fstream f(L"Records",std :: ios :: in | std :: ios :: binary);
 
    while( (!f.eof()) && (f) )
    {
        f.read(reinterpret_cast<char*>(&k), sizeof(int));
        cout << k;
    }
 
    k++;
 
    fstream f2(L"Records",std :: ios :: out |  std :: ios :: binary);
    for(int i = 0; i < k; i++ )
        f2.write(reinterpret_cast<char*>(&k),sizeof(int));
 
    return 0;
}
...
Вначале, у меня файла не существует, поэтому в цикл while(...) мы не заходим. Прибавляем к переменной k единицу(теперь k = 1), создаем заново этот файл и записываем в цикле от 0 до k переменную k.
Теперь в файле у меня содержится цифра 1.
Заново открываем программу и видим трабл: программа заходит в цикл while(...), так как файл существует, считываем содержимое в переменную k, то есть считали единицу, которая была в файле(k = 1).
Дальше происходит очень интересный момент. По идее, в файле больше ничего нет, мы считали все до конца файла, НО программа не выходит из цикла, она опять идет читать файл!!! Что это за хрень? На экран выводится по cout << k; две единицы.

Помогите понять что это за проблема, пожалуйста)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru