我想知道在C ++中是否存在像“Matlab”这样的“评估”函数。
实际上,我需要一个可以像命令行一样解释字符串的函数。
感谢您的回答。
答案 0 :(得分:6)
如果您实际上是在尝试在正在运行的C ++应用程序中“评估”C ++源代码,那么基本上没有 - 它不是该语言指定的功能。
对于C ++的子集(例如CInt,Ch和UnderC),有解释器 - 如果它是一个相对简单的程序,它们可能能够运行你的C ++程序。或者,有些可以嵌入在已编译的C ++程序中,以允许一些运行时源代码评估,但对访问预编译代码及其变量的访问权限和能力有限。
正在运行的程序也可以调用编译器并动态加载/链接结果库,但这是一种非常不寻常的做法,并且没有性能,安全性和互操作性问题:
system()
,exec()
,unlink()
调用,滥用网络连接,咀嚼无保护的CPU /内存/描述符等语句。如果你真的需要一些更有限的东西,比如评估数学表达式或逻辑谓词的能力,可能用C ++表示 - 源代码风格,也许是读取或设置你的一些值,那么更多提供有限的专业库和嵌入式解释。甚至还有用于创建此类解析器的库,例如boost spirit库。
最后,其他语言的解释器 - Lua,Ruby,Python,Perl,TCL等 - 可以嵌入到C ++应用程序中,采用各种互操作性和安全性方法。
答案 1 :(得分:4)
您可以使用system()
:http://linux.die.net/man/3/system