Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 17.09.2018, 21:07   #1
ilya4743
 
Регистрация: 30.12.2016
Сообщений: 8
Репутация: 10
По умолчанию Как осуществить ввод в другую программу

Доброго времени суток.
При написании проекта столкнулся с проблемой. У меня есть 2 консольных программы. 1-я запускает вторую и 1-я должна как-то передать(ввести) данные во 2-ую. После чего вторая программа проведёт расчеты и запишет результат в файл. Код второй программы изменять нельзя. С записью в файл результата выполнения второй программы я ещё разобрался system("prog2.exe<<rez.txt"), а как теперь что-то ввести в prog2.exe, используя лишь p1.cpp?

Простой пример каких-то 2-х консольных программ
Код первой программы p1.cpp
Код:

#include <iostream>
using namespace std;
int main()
{
	system("g++ p2.cpp -o prog2");  // компилируем вторую программу
        system("start prog2.exe");          // запускаем вторую программу
        ....................                            // здесь как-то надо ввести(передать данные) в prog2.exe
        system("prog2.exe<<rez.txt");   // записываем результат выполнения второй программы в файл
	system("PAUSE");
        return 0;
}

Код второй программы p2.cpp
Код:

#include<iostream>
using namespace std;
int main()
{
	int a, b, c;
	cin>>a>>b>>c;
	cout<<a+b+c;
	return 0;
}

Подскажите пожалуйста как решить эту проблему. Заранее спасибо.
ilya4743 вне форума   Ответить с цитированием
Старый 17.09.2018, 21:21   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,980
Репутация: 3316

icq: 512-765
skype: alexp.frl
По умолчанию

Зачем вы компилируете вторую программу из первой?оО
Тогда уж и в ее коде можно что угодно заменить.

И я так и не понял в чем вопрос. Вы ж использовали << для ввода из файла. (только вроде такого не бывает, надо < https://ss64.com/nt/syntax-redirection.html )

Надо получить вывод второй программы?
Либо WinApi (для винды) CreateProcess, либо < input.txt > output.txt
Alex11223 вне форума   Ответить с цитированием
Старый 17.09.2018, 23:01   #3
ilya4743
 
Регистрация: 30.12.2016
Сообщений: 8
Репутация: 10
По умолчанию

Всё, разобрался. Действительно всё оказалось так просто. Спасибо за ссылку Alex11223 и комментарий, они помогли. Мне всего-то нужно было написать system("prog2.exe<in.txt>out.txt");
А в коде у меня ошибка, вы правы, не заметил, конструкция system("prog2.exe<<rez.txt"); не работает, я перепутал местами, хотел написать system("prog2.exe>>rez.txt"); эта конструкция рабочая
ilya4743 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Осуществить ввод последовательности целых чисел. Alimzhan93 C# (си шарп) 1 07.06.2013 06:29
осуществить ввод цифр. осуществить диалог. 13xXx13 Помощь студентам 0 08.12.2011 20:25
Как осуществить ввод с клавиатуры и вывод цифры на дисплее? ALKOrobot Java Мобильная разработка (Android) 0 03.09.2011 20:39
Как осуществить ввод данных в одном цикле, их обработку в другом, и вывод результатов в третьем? ReM Паскаль 5 11.11.2008 19:21
как «внедриться» в другую программу? forzub Общие вопросы Delphi 0 10.07.2008 17:33


05:48.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru