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

отсоединение от файлов - C++

Восстановить пароль Регистрация
 
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
06.11.2011, 12:04     отсоединение от файлов #1
Извините если подобная тема уже была создана где-то но я не нашел такой. Я использовал команду freopen для подключения файла и ввода в файл а потом хочу опять выводить на экран но не пойму как это сделать? как "отключить" файл и начать вывод на экран заново?

Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2011, 12:04     отсоединение от файлов
Посмотрите здесь:

Сравнить содержимое файлов между собой, и если оно совпадает, то вывести на экран имена этих файлов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.11.2011, 12:08     отсоединение от файлов #2
вызывай freopen еще раз, только вместо имени файла передавай NULL
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.11.2011, 12:13     отсоединение от файлов #3
http://c-faq.com/stdio/undofreopen.html
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
06.11.2011, 12:26  [ТС]     отсоединение от файлов #4
Спасибо всем кто написал, сделал все кроме NULL... жаль что сам не додумался... ну ладно все равно спасибо всем кто постарался и отвел хотя бы пару секунд)
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.11.2011, 12:38     отсоединение от файлов #5
Цитата Сообщение от Jupiter Посмотреть сообщение
вызывай freopen еще раз, только вместо имени файла передавай NULL
не будет работать
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
06.11.2011, 12:44  [ТС]     отсоединение от файлов #6
Цитата Сообщение от Nameless One Посмотреть сообщение
не будет работать
странно а почему у меня сработало? О_о у меня и то и другое сработало)
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.11.2011, 12:56     отсоединение от файлов #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от sbhx Посмотреть сообщение
странно а почему у меня сработало? у меня и то и другое сработало)
потому, что freopen закрывает оригинальный файловый поток, а стандартного способа восстановить stdout (stdin, stderr) из строкового параметра не существует. А вообще, покажи код
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.11.2011, 13:28     отсоединение от файлов #8
Цитата Сообщение от Nameless One Посмотреть сообщение
Сообщение от Jupiter
вызывай freopen еще раз, только вместо имени файла передавай NULL
не будет работать
действительно не работает, хотя помню точно в древних компилях использовал и работало как-то)
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
06.11.2011, 16:29  [ТС]     отсоединение от файлов #9
ну вообще я пользуюсь DEV-C++ это древний компилятор? сейчас перестало работать ну вот часть кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
          cout << endl << "/t Подождите..." << endl << endl;
          cout << "\t\t 0% |                    |" << endl;
          freopen("C:/Users/Dennis/Desktop/m", "w", stdout);
          cout << "1" << endl;
          freopen(NULL, "w", stdout);
          system("cls");
          cout << "\t\t 1% |*                   |" << endl;
          freopen("C:/Users/Dennis/Desktop/sittings", "w", stdout);
          cout << "0 10" << endl;
          freopen(NULL, "w", stdout);
          system("cls");
          cout << "\t\t 5% |*                   |" << endl;
это типа установки но это не установка это похоже на бред соглашусь) почему перестало работать хотя работало и хорошо работало.... на самом деле это одна часть кода но все-таки разобраться здесь можно и дальше тоже самое... там идут всякие меню это не столь важно... все остальное работает отлично только вот проблема с отменой вывода на экран...
я переробатывал код и получалось без ошибок но все же так у меня получается короче и хотелось бы понять как сделать именно с freopen возвращаться... но если нет другого метода то буду писать более длинным методом все равно спасибо всем)
я пишу консольную игру и в ней нужно если создаешь новые настройки сделать подобную фигню... и хотелось бы разобраться с этим...(( эти файлы будут помогать настройки сохранять и воспроизводить легко и быстро... не хочу с базами данных морочить себе голову)
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.11.2011, 17:01     отсоединение от файлов #10
Цитата Сообщение от sbhx Посмотреть сообщение
ну вообще я пользуюсь DEV-C++ это древний компилятор
это вообще не компилятор, эта среда разработки. Она использует в качестве компилятора (по умолчанию) MinGW. Посмотри, какая версия MinGW у тебя идет с компилятором

Цитата Сообщение от sbhx Посмотреть сообщение
все остальное работает отлично только вот проблема с отменой вывода на экран...
я переробатывал код и получалось без ошибок но все же так у меня получается короче и хотелось бы понять как сделать именно с freopen возвращаться... но если нет другого метода то буду писать более длинным методом все равно спасибо всем)
в общем случае отмена перенаправления для стандартных потоков невозможна. Так что используй отдельные функции для файловых потоков и отдельные - для стандартных потоков

ИМХО, код, который ты привел выше, выглядит достаточно запутанно. Чтобы определить, куда в данный момент будет записываться вывод, приходится искать в коде последнее перенаправление вывода. Удобней будет использовать явный вывод в файл
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.11.2011, 17:07     отсоединение от файлов #11
Неужели настолько лень вызывать fopen и fclose и сохранить один несчастный файловый дескриптор?..
sbhx
 Аватар для sbhx
25 / 19 / 1
Регистрация: 02.02.2011
Сообщений: 90
06.11.2011, 17:14  [ТС]     отсоединение от файлов #12
ладно... переписал код, всем ОГРОМНОЕ СПАСИБО!
для меня не очень запутанно но мне кажется что это только для меня так как я знаю весь код и знаю что я делаю и поэтому представляю себе что где находится еще раз спасибо тему можно закрывать все теперь понятно... буду теперь использовать freopen когда буду уверен что не надо будет переключаться опять на вывод на экран а только когда работа идет с файлами...

Добавлено через 6 минут
Цитата Сообщение от talis Посмотреть сообщение
Неужели настолько лень вызывать fopen и fclose и сохранить один несчастный файловый дескриптор?..
спасибо за данные команды но я просто не знал о существовании таких а если бы знал вообще эту тему наверное не заводил
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.11.2011, 17:17     отсоединение от файлов #13
Цитата Сообщение от sbhx Посмотреть сообщение
спасибо за данные команды но я просто не знал о существовании таких а если бы знал вообще эту тему наверное не заводил
Дорогие (некоторые) преподаватели программирования! Доупрощались, поздравляю вас!
Yandex
Объявления
06.11.2011, 17:17     отсоединение от файлов
Ответ Создать тему
Опции темы

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