有没有办法转换用户在代码中输入的内容? 喜欢 如果
char k[50];
printf("insert the code to insert");
scanf("%s", &k);
功能=> 如果代码正确,则转换字符串并执行该字符串
例如
如果用户插入 "int a = 0;"
作为输入,程序运行输入字符串?
最佳答案
您正在寻找的本质上是类似于某些语言具有的 eval
函数。
不,没有办法做到这一点。至少不是以实际的方式。原因很简单。在 C 语言中,您需要在运行之前编译完整的程序。如果 10k 多行代码中哪怕只有一个语法错误,您也不会从编译器中获得可执行的二进制文件。
另一方面,Python 可以逐行执行。这就是为什么您可以执行有语法错误的 Python 代码。在您遇到错误之前,程序不会崩溃。
此外,无论使用哪种语言,在使用此类内容之前都应该三思而后行。漏洞的风险极高。
关于C编程语言,如何转换代码中的输入字符串并运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58402290/