Как передать аргументы командной строки при использовании ideone?

Я использую онлайн-переводчик ideone ( http://ideone.com/ ) для тестирования некоторых программ на C ++ и Python. Как указать аргументы командной строки вместо использования входа STDIN?

Похоже, вы не можете, но быстрый хак должен сделать трюк:

static char * const ARGV[] = { "myprog", "hello", "world", NULL }; int main(int argc, char * argv[]) { argc = 3; argv = ARGV; // ... } 

Или преобразовать стандартный ввод в args:

 #include <vector> #include <string> #include <iterator> #include <iostream> std::vector<char *> fabricate(std::vector<std::string> & v) { std::vector<char *> res(v.size() + 1, NULL); for (std::size_t i = 0; i != v.size(); ++i) { res[i] = &v[i][0]; } return res; } std::vector<std::string> args_vector((std::istream_iterator<std::string>(std::cin)), std::istream_iterator<std::string>()); std::vector<char *> argv_vector = fabricate(args_vector); int main(int argc, char * argv[]) { argc = args_vector.size(); argv = argv_vector.data(); // ... } 

В python вы можете сделать hardcode следующим образом:

 import sys print sys.argv sys.argv[1:] = ["test1", "test2"] print sys.argv 

Это приведет к выводу:

 ['prog.py'] ['prog.py', 'test1', 'test2'] 

Для чтения из stdin:

 import sys import shlex print sys.argv sys.argv[1:] = shlex.split(None) print sys.argv 

Просто инициализируйте, чтобы имитировать аргументы командной строки

 static char *argv[] = {"program_name", "1st argument", "2nd argument", NULL}; static int argc = 3; int main() { }