Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему не открывается файловый поток... 
V
    Опции темы
Ulysses4j
Дата 20.12.2007, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 6.6.2007
Где: Ростов-на-Дону

Репутация: 4
Всего: 10



Может быть, у кого-то возникнут идеи, почему такая вещь может выбрасывать исключение:
Код
std::fstream file;
/*... возможны открытия-закрытия потока в различных режимах (чтение, запись), но они парные */
file.open(name.c_str(), std::ios::out);
if (! file.is_open()) throw std::runtime_error("File not found");

Перменная name типа std::string корректно инициализирована. Доподлинно известно, что файла с именем name на тот момент не существует. Однако, в режиме out он должен создаваться и открываться.

Если между объявлением переменной и приведенным вызовом open ничего нет, то все отлично работает (файл открывается). Фактически, вопрос заключается в том, может ли и если да, то как, влиять история использования переменной file на работу второй части приведенного фрагмента кода.

Советы использовать переменную типа ostream не принимаются, потому что приведенный пример суть упрощение реальной ситуации, когда нужна именно многоцелевая переменная (она используется в реализации некоторой более высокоуровневой обертки потока).

Это сообщение отредактировал(а) Ulysses4j - 20.12.2007, 14:06


--------------------
Communication is critical to the job of a programmer.
C. Jazdzewski. Fatherly Advice To New Programmers
PM MAIL WWW   Вверх
Ulysses4j
Дата 20.12.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 6.6.2007
Где: Ростов-на-Дону

Репутация: 4
Всего: 10



Вопрос решился. Имя файла name совпадало с уже существовавшей в текущем каталоге папкой.

Это сообщение отредактировал(а) Ulysses4j - 20.12.2007, 14:36


--------------------
Communication is critical to the job of a programmer.
C. Jazdzewski. Fatherly Advice To New Programmers
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.