2015-11-29 4 views
-2

Возможно ли сохранить «команду» в отдельном файле и вызвать ли ее при каждом вводе имени этого файла?Выполнение команды в отдельном файле

Скажем: файл help содержит код: cout << "This is help file."; Так можно получить содержимое файла без необходимости создания функций в ней, прямо к действию, как это в Lua?

Редактировать

Ну, я нахожусь в процессе обучения C++, так встраивание Lua не имеет смысла для меня, но это очень хорошая идея для моих будущих проектов, спасибо.

То, что я пытаюсь сделать, это моделирование командной строки os. Что-то вроде ComputerCraft. В основном вы вводите команду, тогда программа ищет фактический файл с тем же именем, что и пользовательский ввод, и если найденный выполняет его содержимое. Все это делается во время выполнения, проверьте файл, выполнение, добавление нового и т.д.

Что-то вроде В консоли:

> help 

Программа проверяет файл с именем помощи и при обнаружении выполняет его Содержание help :

cout << "type help for help, programs for list of programs etc"; 

Я хочу, чтобы это таким образом, чтобы сделать возможным, чтобы создать новый файл «команду» прямо из этого моделируемой зева и автоматически делает его пригодным для использования с наименьшими усилиями возможно для пользователя.

Я сделал это в Lua раньше, и я хотел бы знать, как и, если это возможно в C++ я работал в Love2D, и имеет функцию love.filesystem.load(filename) основном то, что он делает, он создает функцию, которая имеет содержание файл как контейнер, вы назначаете ему имя function = love.filesystem.load(filename), а затем выполняете его как обычную функцию. То, что я ищу, эквивалентно.

+0

Вы спрашиваете, можете ли вы выполнить код C++ в текстовом файле во время выполнения? (Ответ - нет, если вы не используете компилятор C++ с вашей программой или не изобретаете интерпретатор) –

+0

Вам необходимо сохранить этот код * где-то *. В функции/lambda/etc ...Вы можете добавить этот wrapperlayer в * другой * файл, а затем '# include' файл оттуда ... то есть, если это вас радует. Я действительно не вижу смысла делать это. –

+0

№ C++ - это не PHP. –

ответ

1

Если вы хотите выполнить скрипт в файле, вам нужно будет либо использовать существующий язык сценариев, либо включить интерпретатор в вашу программу, либо придумать собственный язык сценариев и код, как его интерпретировать.

Если вы хотите, чтобы файлы содержали код C++ для выполнения во время выполнения, это невозможно или вам будет сказано. На самом деле это не невозможно; люди, которые говорят вам, что это технически неправильно. Но это безумно сложно и определенно не является новичком.

Вам нужно будет включить полноценный компилятор C++ в вашу программу, скомпилировать код в файле во время выполнения и выполнить результат. Некоторые антивирусные сканеры могут быть недовольны, когда программа пытается это сделать. (Иногда мой жалуется на мои творения в Visual Studio!)

Или вам понадобится интерпретатор C++ во время выполнения. Если такая вещь существует, мне было бы очень интересно узнать об этом!

Практически говоря, лучшее, на что можно надеяться, это интерпретатор, который может работать с очень ограниченным подмножеством C++.

+0

https://github.com/vgvassilev/cling – Flexo

+0

[CINT] (https://root.cern.ch/cint)? Конечно, существуют интерпретаторы. Я сомневаюсь, что это хорошее решение для OP. – JBentley

+0

@Flexo И они запускают ВСЕ стандартные C++ или просто его подмножество? –

Смежные вопросы