LINUX.ORG.RU

про результат измененный аргументом - не понял, а вообще главная функция в консольной с++ программе - main, принимает два аргумента, первый (argc) - количество параметром, второй (argv) - массив строк, которые собственно сами эти параметры и содержат

anonymous
()
Ответ на: комментарий от anonymous

Нужно чтобы определялась команда, смотрелось что после нее, убирался текст команды и результат писался в переменную, читаемую из функции.

kainah
() автор топика
Ответ на: комментарий от kainah

>Нужно чтобы определялась команда

argv[0] в руки

>смотрелось что после нее


for (int i = 1; i < argc; ++i) {
    // смотрим что тут у нас
}

>убирался текст команды и результат писался в переменную, читаемую из функции.

Ну и дальше аргументы все используй, копируй, модифицируй, как тебе надо.

Ты как-то так объясняешь, что ничего не понятно. Надо чтобы было строкой? Ну так в массиве делай strcat() какой. Или что тебе надо?

php-coder ★★★★★
()
Ответ на: комментарий от php-coder

При запуске проги под консолью узер логинится и попадает в интерпретатор команд. Команды есть, только хочется чтобы было не:
"> print
Вывести: Ля-ля
Ля-ля", а:
"> print Ля-ля
Ля-ля".

Команда (т.е. "print") обрезается, а то что остается (в примере текст, которые надо вывести) пишется в переменную, которая потом читается интерпретатором и благополучно выводится.

kainah
() автор топика
Ответ на: комментарий от kainah

А в чём проблема то? Самый просто вариант: 1) читаем строку с командой, 2) проверяем, что строка начинается с "print " и 3) передаём в функцию указатель на параметры команды - что-то типа doPrint(readed_string + cmd_len /* strlen("print ") */).

Deleted
()
Ответ на: комментарий от kainah

dont@dont ~ $ cat bla.cpp
#include <iostream>
int main(int argc,char** argv)
{
      if(argc <= 1)
      {
        std::cerr << "Argument required.\n";
        return -1;
      }

      std::cout << argv[1] << std::endl;
      return 0;
}
dont@dont ~ $ g++ -o print bla.cpp
dont@dont ~ $ ./print Ля-ля
Ля-ля

Для более "крутого" парсинга опций командной строки смотри на функцию getopt_long или сюда http://www.boost.org/doc/libs/1_37_0/doc/html/program_options.html#id3455369

dont
()
Ответ на: комментарий от kainah

http://cvsweb.netbsd.org/bsdweb.cgi/src/bin/echo/echo.c?rev=1.18&content-...

но, боюсь, для тебя будет сюрпризом, что шелл осуществляет первичную обработку аргументов. Поэтому то что написано в строке, и то что передается команде может отличаться.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

>> но, боюсь, для тебя будет сюрпризом, что шелл осуществляет первичную обработку аргументов. Поэтому то что написано в строке, и то что передается команде может отличаться.

Я так понял, что он и хочет написать нечто типа шелла.

Deleted
()
Ответ на: комментарий от php-coder

Эникейщики через жопу советами, но проложат дорогу себе, да кодер? не пейши нинада не мучийса.

anonymous
()
Ответ на: комментарий от dont

>Научись сначала выражать свои мысли. До сих пор не могу понять, чего ты хочешь.

аналогично. прочитал весь тред, понимание только уменьшилось

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.