все правильно. При реализации этой
// запомнить текущую позицию
ios_base::pos_type mark = inOut.tellg();
inOut << cnt << ' ';
inOut.seekg( mark ); // восстановить позицию
}
}
inOut.clear();
inOut << cnt << endl;
cout << "[ " << cnt << " ]\n";
return 0;
}
Вот теперь – наконец-то! – все правильно. При реализации этой программы было необходимо явно сформулировать поведение, которое мы собирались поддержать. А каждое наше исправление было реакцией на выявившуюся ошибку вместо анализа проблемы в целом.
Упражнение 20.12
Пользуясь операторами вывода для класса Date, которые вы определили в упражнении 20.7, или для класса CheckoutRecord из упражнения 20.8 (см. раздел 20.4), напишите программу, позволяющую создать файл и писать в него.
Упражнение 20.13
Напишите программу для открытия и чтения файла, созданного в упражнении 20.12. Выведите содержимое файла на стандартный вывод.
Упражнение 20.14
Напишите программу для открытия файла, созданного в упражнении 20.12, для чтения и дозаписи. Выведите экземпляр класса Date или CheckoutRecord:
(a) в начало файла
(b) после второго из существующих объектов
(c) в конец файла
Содержание Назад Вперед