C编程语言,如何转换代码中的输入字符串并运行

标签 c

有没有办法转换用户在代码中输入的内容? 喜欢 如果

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/

相关文章:

c - 在 C 中查找 .bmp 图像的宽度和高度

C:打印的字符不正确,怀疑是内存。问题

c - 带有子目录的 makefile

sudo - 使用 system() 在 C 中执行 sudo 命令

c - 有没有办法限制指针被特定函数修改?

c - 我怎样才能开始微 Controller 编程?

c - 我怎样才能 "pause"应用程序让用户按下按钮? GTK

c - setgid() : Operation not permitted

c - 从 G-Wan C 脚本读取 POST 有效负载

c - "a[0]"的意思不仅仅是 "a"吗?