是否可以存储"命令"在一个单独的文件中,只要输入该文件的名称就调用它?
让我们说:文件help
包含代码:cout << "This is help file.";
那么是否可以获取文件内容而无需在其中创建函数,直接采取行动,就像在Lua中一样?
修改
好吧,我正在学习C ++,所以嵌入Lua对我来说没有意义,但这对我未来的项目来说是个好主意,谢谢。
我想要做的是模拟命令行操作系统。像ComputerCraft这样的东西。基本上你输入一个命令,程序然后查找一个与用户输入同名的实际文件,如果找到它执行它的内容。这一切都是在运行时完成的,检查文件,执行,添加新的等等。
喜欢的东西 在控制台中:
> help
程序检查名为help的文件,如果找到则执行它
help
的内容:
cout << "type help for help, programs for list of programs etc";
我希望以这种方式创建一个新的&#34;命令&#34;从该模拟操作系统直接输入文件,并自动使用它,尽可能少用户。
我以前在lua中做过,我想知道如何以及在C ++中是否可行
我在Love2D工作,它有一个函数love.filesystem.load(filename)
基本上它做了什么,它创建了一个函数,它具有文件的内容作为它的容器,你为它指定一个名称function = love.filesystem.load(filename)
然后将其作为普通函数执行。我寻求的东西等同于它。
答案 0 :(得分:1)
如果要在文件中执行脚本,则需要使用现有的脚本语言并在程序中包含解释器,或者创建自己的脚本语言并编写如何解释它的代码。
如果您希望文件包含在运行时执行的C ++代码,则这是不可能的,因此您将被告知。实际上并非不可能;告诉你技术错误的人。但这非常困难,绝对不是初学者的项目。
您需要在程序中包含一个完全成熟的C ++编译器,在运行时编译文件中的代码并执行结果。当程序试图这样做时,一些病毒扫描程序会感到不快。 (有时候我会在Visual Studio中抱怨我的创作!)
或者你需要一个运行时C ++解释器。如果存在这样的事情,我会非常有兴趣了解它!
实际上,您可以期待的最好的解释器是可以使用非常有限的C ++子集。