Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 3
1

Вывести текст в консоль, а шифр в файл

23.05.2016, 07:56. Показов 1202. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа программисты, блесните знаниями)
Допустим есть 2 строки:
C++
1
2
cout << "текст: " << text << endl;
cout << "Зашифрованный текст: " << shifr << endl;
как сделать, что бы при запуске проги через консоль (ubuntu), при перенаправлении вывода в файл >outfile, "текст" вывелся в консоли, тут же ниже, а вот "зашифрованный текст" записался в файл outfile?
Пробовала
C++
1
2
3
  freopen ("myfile.txt","w",stdout);
  cout << "Зашифрованный текст: " << shifr << endl;
  fclose (stdout);
Но это не совсем то. нужно чтобы имя файла для stdout именно с консоли вводилось >
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.05.2016, 07:56
Ответы с готовыми решениями:

Вывод текст в консоль (не получается вывести текст в консоль; попытка была в разделе menu, но вывелся ужас)
d_d1 segment ;начало сегмента данных m1 db 23, '=========MENU=========', 23, '$' m2 db 23, '| 1-...

Вывести текст в консоль
Привет всем,помогите плиз Я забыл как зделать ввод=выводу данных текста как у переменных ввожу 5...

Вывести текст в консоль
Всем привет) Опять мне нужна помощь. Изучаю простое консольное приложение под Win. Писал...

Ввести и вывести текст на консоль
Нужно простая работа с текстом нужно ввести текст(с пробелами т.е. cin - неподойдет) и вывести...

10
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
23.05.2016, 08:53 2
А если вывод текста сделать не в cout, а например в cerr ?
0
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 3
23.05.2016, 14:49  [ТС] 3
cerr это же вроде вывод об ошибках. Мне кажется это не то(
Если ошибаюсь, обьясните подробнее, пожалуйста)
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
23.05.2016, 15:14 4
Цитата Сообщение от aleksMish Посмотреть сообщение
обьясните подробнее, пожалуйста)
cout и cerr - разные потоки и перенаправлять их можно независимо друг от друга:
C++
1
2
3
4
5
int main()
{
    std::cout << "cout" << std::endl;
    std::cerr << "cerr" << std::endl;
}
Запуск:
test.exe 1>cout.txt 2>cerr.txt

О содержимом файлов не трудно догадаться.

Перенаправление перенаправляет весь поток в файл. Часть потока пернаправить обратно в консоль не получится.
В линуксе часто так и делают - пишут в cerr прогресс и комментарии.
1
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
23.05.2016, 16:52 5
Цитата Сообщение от avgoor Посмотреть сообщение
Запуск:
test.exe 1>cout.txt 2>cerr.txt
Аналогично при запуске
Код
test.exe > cout.txt
cout пойдёт в файл, а cerr будет отображаться в консоли.
Предполагаю, что это как раз нужный результат.
1
0 / 0 / 0
Регистрация: 23.05.2016
Сообщений: 3
25.05.2016, 05:54  [ТС] 6
Да, все запускается как надо. Спасибо большое, ребят
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
25.05.2016, 11:25 7
Хм... А вот если я сделаю перенаправление по обоим выходным, и входному потоку.... Я смогу как-нибудь получить в своё пользование поток консоли?
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
25.05.2016, 12:10 8
Цитата Сообщение от Mirmik Посмотреть сообщение
Я смогу как-нибудь получить в своё пользование поток консоли?
В линуксе всё - файлы. Т.е. Во время запуска из консоли оболочка (в вашем случае, скорее всего, bash) подключает к каждому стандартному потоку какой-то файл (либо файл конкретного терминала, либо файл указанный вами). Т.е. если вы перенаправили поток - ваша программа не получит дескриптор терминала.

Добавлено через 8 минут
P.S. Попытка вывести что-то в терминал, из которого запущена ваша программа с перенаправлением эквивалентна попытке вывести что-то в любой другой терминал.
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
25.05.2016, 17:55 9
А может можно как-то получить открытый файл терминала через пид родителя?
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
25.05.2016, 21:12 10
Цитата Сообщение от Mirmik Посмотреть сообщение
А может можно как-то получить открытый файл терминала через пид родителя?
Файл получить можно /proc/[pid]/fd/[file]
Добавлено через 6 минут
Но вы не в том направлении движетесь, т.к. перенаправление нужно, чтобы перенаправить весь вывод. И все кто этим пользуется ждут именно этого. Скорее всего вы в чем-то не разобрались, т.к. сама идея - трансанальная.
0
techpriest
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
25.05.2016, 22:14 11
А как это сделать без использования файловой системы proc?
0
25.05.2016, 22:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2016, 22:14
Помогаю со студенческими работами здесь

Вывести в консоль русский текст
Здравствуйте. Я понимаю что тема поднималась не один десяток раз, но все же... Установил...

Вывести арабский текст в консоль
Подскажите как правильно вывести в консоль текст на арабском или другом &quot;перевернутом&quot; языке. ...

Как вывести текст на консоль
Первая задачка. К примеру есть дефолтное консольное приложение static void Main() { ...

Вывести русский текст в консоль
Возможно ли и как, выводить на Си(не С++, а именно Си, так как нам не льзя использовать элементы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru