Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Перенаправление потоков в C++

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

WoDaHs



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Нужно несколько вариантов перенаправления потоков:
 
1) ввод производится через cout<< вывод через cin>>
2) ввод через cout>> вывод через cin<<
 
 
P.s. Чем больше способов тем лучше, даже если они не сильно отличаются. Заранее благодарен  
 

Всего записей: 422 | Зарегистр. 01-08-2002 | Отправлено: 00:31 24-02-2005
TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WoDaHs
Честно сказать, не понял вопроса, но есть алгоритм copy, он позволяет, в частности, копировать потоки.

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 10:21 24-02-2005
max0z

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
/* поменять местами стандартые потоки ввода и вывода */
#include <stdlib.h>
int tmpfd=dup(0);
dup2(0,1);
dup2(1,tmpfd);
для *nix кажется так, но может поменять местами аргументы dup2, не помня я их наизусть
  правда не гарантируется что cout cin продолжат работать
 
 
 

Всего записей: 21 | Зарегистр. 15-02-2005 | Отправлено: 20:46 24-02-2005
WoDaHs



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TheChampion

Цитата:
Честно сказать, не понял вопроса, но есть алгоритм copy, он позволяет, в частности, копировать потоки.

Увы, не вариант - нужно именно перенаправление(перегрузка <<>>, создание субклассов, перенаправление потоков в файлы - что-то типо этого)

Цитата:
для *nix кажется так

Тоже не подходит

Всего записей: 422 | Зарегистр. 01-08-2002 | Отправлено: 00:41 25-02-2005
TheChampion

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WoDaHs
В std::cin есть только итераторы ввода, в std::cout - вывода. По определению нельзя писать в std::cin. Может быть, сформулируешь проблему целиком?
 
Кстати, почему нельзя просто записать в файл, а потом его прочитать? Вроде бы и перенаправление, и точно работает, и не требует почти никакого программирования. Правда использовать нужно std::ifstream/std::ofstream.  

Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 09:43 25-02-2005
nobody2

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WoDaHs
через pipe

Всего записей: 223 | Зарегистр. 15-07-2003 | Отправлено: 12:17 25-02-2005
WoDaHs



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TheChampion

Цитата:
Кстати, почему нельзя просто записать в файл, а потом его прочитать?

Без понятия, это был один из первых моих вариантов и на данный момент он считается неправильным

Цитата:
Может быть, сформулируешь проблему целиком?

Да нету проблемы, задание такое долбанутое чтоб вводить через cout выводить через cin...
 
nobody2

Цитата:
через pipe

А можно после слова "через" поподробнее?

Всего записей: 422 | Зарегистр. 01-08-2002 | Отправлено: 01:14 26-02-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Перенаправление потоков в C++


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru