Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
Эксперт С++
475 / 443 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
1

Вернуть stdin в консоль

11.07.2010, 21:49. Просмотров 3713. Ответов 10
Метки нет (Все метки)

Допустим я перенаправил поток stdin/stdout в файл с помощью функции freopen. Как заставить его снова работать с консолью?

Добавлено через 9 минут
Нашел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
 
int main()
{
    freopen("output.txt","wt",stdout);
    printf("hello, file");
    freopen("CON","wt",stdout);
    printf("hello, console");
    getch();
}
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.07.2010, 21:49
Ответы с готовыми решениями:

if (feof(stdin)) while(!feo(stdin)) while(!feof(stdin) )
Как с ними правильно работать в Си?? Объясните принцип пожалуйста?

Перенаправление потока stdin в файл и обратно в консоль
Добра вам! Задача элементарная - считать из файла строку, а после - считать с клавиатуры число....

Как вернуть полученную строку? На консоль выводит, а в Main возвращать не хочет
что то пошло не так Добавлено через 5 минут Классическая задача на замену местами первого и...

Вернуть 1, если числа являются сторонами треугольника Пифагора, иначе вернуть 0
Для всех заданий входные данные передаются в подпрограмму через стек, а результат возвращается...

10
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
11.07.2010, 22:27 2
C++
1
2
3
4
5
6
7
int main(){
const FILE* f = stdin;
//.....
stdin = f;
printf("hellhell!");
return 0;
}
думаю примерно так
0
Эксперт С++
475 / 443 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
11.07.2010, 22:31  [ТС] 3
Компилер сказал, что stdin не l-value.
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
11.07.2010, 22:37 4
ну все правильно, это работает для си

для винды можно воспользоваться
http://msdn.microsoft.com/en-u... S.85).aspx GetStdHandle
0
Evg
Эксперт CАвтор FAQ
21121 / 8137 / 628
Регистрация: 30.03.2009
Сообщений: 22,455
Записей в блоге: 30
11.07.2010, 23:22 5
http://www.manpagez.com/man/3/freopen/

The freopen() function opens the file whose name is the string pointed to by filename and associates the stream pointed to by stream with it. The original stream (if it exists) is closed.
Подозреваю, что никак, но полной уверенности нет
0
Эксперт С++
475 / 443 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
11.07.2010, 23:23  [ТС] 6
Ну млин, я ж уже показал решение.
0
Evg
Эксперт CАвтор FAQ
21121 / 8137 / 628
Регистрация: 30.03.2009
Сообщений: 22,455
Записей в блоге: 30
11.07.2010, 23:24 7
Цитата Сообщение от Хохол Посмотреть сообщение
C
1
freopen("CON","wt",stdout);
Это ОС-зависимый способ (т.е. не универсальный). В случае unix'а вместо "CON" нужно писать "/dev/stdout"
1
Эксперт С++
475 / 443 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
11.07.2010, 23:26  [ТС] 8
А, ну это да. Будем считать, что меня интересовало конкретно в винде.
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
11.07.2010, 23:28 9
cтранно это однако, хотя наверно это не так и нужно вообще
0
Evg
Эксперт CАвтор FAQ
21121 / 8137 / 628
Регистрация: 30.03.2009
Сообщений: 22,455
Записей в блоге: 30
11.07.2010, 23:31 10
Цитата Сообщение от alex_x_x Посмотреть сообщение
cтранно это однако, хотя наверно это не так и нужно вообще
А что странного? В документации в общем-то чётко сказано, что файл закрывается. Способов инициализировать stdin, stdout, stderr на уровне пользователя вроде бы как нет в стандарте
0
бжни
2467 / 1676 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
11.07.2010, 23:33 11
это я не туда
не, все правильно
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2010, 23:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вернуть самое длинное слово, Вернуть словарь-статистику встречаемости букв
Всем добрый день ! Написал 2 функции: def longest_word(text): &quot;&quot;&quot;Вернуть самое длинное слово...

stdin
Как проверить средствами C пуст ли stdin?

STDIN
встретил в коде вот такую строку (вырезка из класса AGI_AsteriskManager) $this-&gt;in =...

Библиотека stdin
Наткнулся в вопросе к экзамену на библиотеку stdin. До этого ни разу с ней не работал. Поискал...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.