是否可以像 Python 的 f 字符串一样在 C 中格式化字符串?



在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功能,以省略必须指定%dprintf格式说明符,并得到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可以打印为您想要的

相关内容

最新更新