Страница 1 из 2
c++ и командная строка
Добавлено: 17 окт 2009, 12:39
lvv
Подскажите, как обратиться к командной строке, отличной от виндосовской cmd?
Ну, т.е., я хочу чтобы моя программка на c++ обращалась к командной строке gnuplot'а и говорила ему что делать, аналогично функции system.
Заранее спасибо.
Re: c++ и командная строка
Добавлено: 17 окт 2009, 17:10
Romeo
Я правильно понимаю, что ты хочешь обратится к командной строке не своей программы, а какой-то другой? Расскажи ещё более подробно чего именно ты хочешь добиться (лучше всего с примером), а также расскажи что такое gnuplot.
Re: c++ и командная строка
Добавлено: 17 окт 2009, 21:27
lvv
В общем ситуация следующая.
Нужно, чтобы программа сделала некоторые расчеты и потом вывела график.
Gnuplot - это, как раз, программка с помощью которой не сложно построить график по дискретным данным, которые в процессе выполнения, моя программа записывает в некоторый файл.
В общем написав в конце своей программы эту строчку:
system("start C:\\Program\\Gnuplot\\bin\\wgnuplot");
я тем самым запустил командную строку windows'а (написав system) и запустил с ее помощью gnuplot (ну то есть в отдельном окне windows'а).
Теперь я могу там писать команды, чтобы он построил мой график, использую данные из файла в который они записаны, но это уже не относится к c++ (но если надо могу написать и это).
Дело в том, что он (gnuplot) работает как командная строка, вот я и подумал, что если c++ умеет обращаться к командной строке windows'а, то может, можно ему как-нибудь сказать, чтобы он использовал не ее, а командную строку gnuplot'а.
Таким образом, я бы смог сделать так, чтобы запустив программу c++, она, сделав расчеты, сама открыла бы gnuplot и сама написала бы ему команду, которая построит график.
Если, что могу выложить код программы.
Надеюсь, не очень запутанно объяснил, если, что могу еще раз попробовать

Re: c++ и командная строка
Добавлено: 17 окт 2009, 23:01
Romeo
Во-первых, проинвестигейть свой gnuplot на наличие удобных параметров командной строки. Вполне возможно, что он умеет что-нибудь типа wgnuplot @comman_file. Просто очень часто подобные программы позволяют передать им в качестве параметра файл, содержащий список команд, которые следует выполнить.
Во-вторых, если первый вариант не пройдёт, то я поищу пример, который у меня где-то валялся, где на вход запущенной консольной программы подавался сформированный поток.
Re: c++ и командная строка
Добавлено: 18 окт 2009, 06:15
lvv
Да-да, это он умеет (если я правильно понял), в частности именно так я строю нужный мне график. Записываю в файл1 данные, посчитанные программой, а в файл2 соответствующую команду, которая говорит ему построить график, используя файл1. Потом даю ему соответствующую команду в командной строке, которая говорит, чтобы открыл файл2. Но опять же - Я ввожу ему эту команду!
Аааа, или ты имеешь ввиду, что нужно найти файл который он при запуске автоматически читает и туда написать мою команду. Потому, что в начале запуска он сразу пишет некоторый текст?!
Я пробовал искать такой файл в ручную, но тщетно...
Или есть какие-то специальные приемы?
Я не очень понимаю, но наверное это и подразумевалось под "проинвестигейтить"?
Re: c++ и командная строка
Добавлено: 18 окт 2009, 12:50
Romeo
Я правильно понимаю, когда ты запускаешь gnuplot, у тебя появляется некое подобие командной строки, где ты можешь писать команды gnuplot'а? Так вот, я тебе предлагал посмотреть позволяет ли запускной файл wgnuplot.exe передать в качестве параметра имя файла, содержащего команды gnuplot'а.
То есть, например в gnuplot тебе нужно выполнить следующие команды:
Вопрос был в следующем: смотрел ли ты документацию на gnuplot, можно ли эти команды поместить в отдельный файл commands.txt и затем передать его в качестве параметра запускному файлу wgnuplot.exe? Дело в том, что большая часть подобных утилит это позволяют. В подобном режиме они запускаются, читают команды из файла одна за одной и выполняют их, потом сами закрываются, даже не предлагая вводить команды с клавиатуры. Вполне возможно, что у тебя станет доступным такой или похожий вызов из С++:
Код: Выделить всё
system("start C:\\Program\\Gnuplot\\bin\\wgnuplot @commands.txt");
Re: c++ и командная строка
Добавлено: 18 окт 2009, 20:17
lvv
Урааа! Получилось!
Огромное спасибо! Там и в правду есть такой файл, ну то есть, его не было, но я создал и все заработало!
Теперь моя программка практически завершена!
Еще раз благодарю!

Re: c++ и командная строка
Добавлено: 18 окт 2009, 22:18
Romeo
Да не за что. Обращайся
Самому приятно, что получилось дать дельный совет по программе, которую никогда в жизни не видел

Re: c++ и командная строка
Добавлено: 20 окт 2009, 10:40
atavin-ta
Не уверен, что получится, но попробуй конкатенировать с параметром systemа всё, что хотел запизхать в командную строку глуплота.
Re: c++ и командная строка
Добавлено: 21 окт 2009, 00:06
Romeo
atavin-ta, ты прочитал только первый пост? Обсуждение не осилил, по всей видимости. Слушай, ты с
Airhand не знаком, случаем?
