我现在正在使用C++编写一个机器人程序,使用PROS。PROS有一个print函数,它接受一个const char *参数。现在,我正在使用lvgl创建自己的屏幕,并想复制print函数。就像printf()函数一样,我想包含可变参数来实现%d效果(因此它将所有%?转换为相应的值)。现在的问题是关于函数之间的转换。我想制作一个转换函数,将字符串和可变参数转换成完整的字符串。我需要输入一个类似于“hey”的字符串,但不确定类型名称应该是什么。我需要能够获取大小,在其中搜索%d,但我需要该函数返回一个const char*以传递到lvgl以在屏幕上打印。我试图将字符串转换为const char*以输出转换函数,但遇到了麻烦。
此外,我尝试将输入类型设置为char*,当我输入类似于“hello”的字符串时,它会显示错误[ISO C++11不允许从字符串字面值转换为'char'[-Wwritable-strings]]。但是,当我使用const char时,错误消失了。有人知道原因吗?
感谢大家的帮助!
此外,我尝试将输入类型设置为char*,当我输入类似于“hello”的字符串时,它会显示错误[ISO C++11不允许从字符串字面值转换为'char'[-Wwritable-strings]]。但是,当我使用const char时,错误消失了。有人知道原因吗?
感谢大家的帮助!
printf
和vsprintf
这样的函数的源代码,以了解它们的工作原理。 - undefined__vfprintf_internal
函数中处理。你可以在这里看到具体的代码:https://github.com/lattera/glibc/blob/master/stdio-common/vfprintf.c 这并不容易。 - undefined