在Python中,可以使用f-strings方便地格式化字符串:
num = 12
print(f"num is {num}") # prints "num is 12"
有可能在C中做这样的事情吗?或者类似的东西?目前,要向输出添加变量,我使用以下方法:
int num = 12;
printf("num is %d", num);
这是唯一的方法来添加变量的print语句在C?
{num}")
有可能在C中做这样的事情吗?
不,不可能。C语言是一种没有反射的编程语言。在c语言中,无法通过名称找到存储在字符串中的变量。
另一方面,Python是一种解释性语言,它背后有一个完整的解释器实现,可以跟踪所有变量名和值,并允许在解释性语言本身中查询它。因此,在python中使用字符串"num"
,您可以找到具有该名称的变量并查询其值。
p。这是可能的与许多宏和C11_Generic
功能,以省略必须指定%d
printf
格式说明符,并得到C更多的c++ -ishstd::cout <<
函数重载-为此,你可能想探索我的尝试在它与YIO库。然而,要做到这一点,最好还是改用c++或Rust或其他功能更丰富的编程语言。
正如ForceBru所说,您可以使用sprintf(char *str, const char *format, ...)
,但您需要有一个分配的字符串来接收该结果:
int num =0;
char output_string[50];
sprintf(output_string,"num is %d", num);
现在output_string
可以打印为您想要的