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

Работа с потоками cin и cout из другой программы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посчитать среднегеометрическое главной диагонали трехмерного массива (NxNxN) http://www.cyberforum.ru/cpp-beginners/thread1643384.html
Посчитать среднегеометрическое главной диагонали. Автоматическое заполнение. Вывести на экран. Консольное приложение.
C++ Некорректная работа программы Добрый день! Я попытался решить задачу № 5 "Статистика" с сайта acmp.ру. Текст задачи: Вася не любит английский язык, но каждый раз старается получить хотя бы четверку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечетным дням месяца он получал тройки, а по четным – четверки. Так же он помнит, в какие дни он получал эти оценки.... http://www.cyberforum.ru/cpp-beginners/thread1643303.html
C++ Регулярные выражения
Можете подсказать что это значит? "Max-Forwards*(\d{3,}|7)" я без понятия что это и откуда это( Добавлено через 4 минуты я уже понял, что х20 - это пробел а х09 отступ (таб) и что это все для текстового редактора
Решить числовой ребус C++
нужно написать на с++ программку для решения числового ребуса: D O N A L D + G E R A L D -------------- R O B E R T Заменить буквы D, O, N и т.д. на цифры таким образом, чтобы сумма была правильной. Разным буквам соответствуют разные цифры
C++ Исправить код алгоритма Флойда http://www.cyberforum.ru/cpp-beginners/thread1643271.html
Вообщем написал такой код. Матрицу размеров кратчайших расстояний создает правильно, а вот сами пути не восстанавливает, никак не могу понять причину. Например в данном примере будет бесконечный цикл #include <iostream> #include <vector> using namespace std; const int n = 10; vector<vector<int>> vec(n); vector<vector<int>> path(n);
C++ Использование шифровальной решетки для шифровки текста Есть задача: Решетка 10х10 клеток, некоторые клетки в которой вырезаны, накладывается на квадрат 10х10, в котором записан текст. Через прорези на бумагу наносятся первые буквы текста, затем решетка поворачивается на 90 градусов и все повторяется. Решетка: 0111111011 1110101101 1010111111 0111110111 1101011010 1110110111 0111111101 1010111011 подробнее

Показать сообщение отдельно
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
20.01.2016, 20:42     Работа с потоками cin и cout из другой программы
Цитата Сообщение от Голубь Вася Посмотреть сообщение
вводила эти значения в solution.exe
Тогда сложнее. Код для винды

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
HANDLE hCin[2];
HANDLE hCout[2];
 
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(sa);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
 
CreatePipe(&hCin[0], &hCin[1], &sa, 0);
SetHandleInformation(hCin[1], HANDLE_FLAG_INHERIT, 0);
CreatePipe(&hCout[0], &hCout[1], &sa, 0);
SetHandleInformation(hCout[0], HANDLE_FLAG_INHERIT, 0);
 
PROCESS_INFORMATION pi;
 
STARTUPINFO si;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
si.hStdError = hCout[1];
si.hStdOutput = hCout[1];
si.hStdInput = hCin[0];
si.wShowWindow = SW_HIDE;
 
BOOL bProc = CreateProcess(NULL, L"solution.exe", NULL, NULL, TRUE, CREATE_UNICODE_ENVIRONMENT, NULL, NULL, &si, &pi);
// если bProc==false - процесс не запустился.
CloseHandle(hCout[1]);
CloseHandle(hCin[0]);
 
 
//Здесь пишем то, что хотим отправить дочернему процессу WriteFile(hCin[1]...
 
 
DWORD dwExit = STILL_ACTIVE;
do
{
    GetExitCodeProcess(pi.hProcess, &dwExit);
} while (dwExit == STILL_ACTIVE);
 
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
 
//Здесь читаем из дочернего процесса ReadFilr(hCout[0]
 
CloseHandle(hCout[0]);
CloseHandle(hCin[1]);
Но проще сделать на шелл скриптах.
 
Текущее время: 05:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru