gpt4 book ai didi

c - 带有字符串变量的彩色读取行的字符串文字组合

转载 作者:太空狗 更新时间:2023-10-29 15:37:33 25 4
gpt4 key购买 nike

是否可以将变量 text_info 放入带有颜色的 readline 中?
GCC 调试器给我这个错误:"error: expected ‘)’ before 'text'

#include <readline/readline.h>

#define CYELLOW "\001\e[0;31m\002"
#define RESET "\001\e[0m\002"

int main(int argc, char **argv)
{
char *text_info = "its very simple string";
readline(CYELLOW text_info RESET);
return 0;
}

我知道下面的方法行得通,但事实并非如此。

int main(int argc, char **argv)
{
readline(CYELLOW "simple string" RESET);
return 0;
}

最佳答案

您发布的行不起作用,因为它无法在构建期间合并:

readline(CYELLOW text_info RESET);

正如@Weaterh Vane 在上面的评论中已经提到的,唯一真正的解决方案是在运行时通过 sprintf 或更好的 snprintf 构建字符串。

 char aBuffer[100];
snprintf(aBuffer, sizeof(aBuffer), "%s%s%s", CYELLOW, text_info, RESET);

编辑:请记住,上面示例中的aBuffer 可能太小(取决于text_info 的长度)。根据您的应用程序,您可以只增加 100 的大小或动态分配缓冲区。

关于c - 带有字符串变量的彩色读取行的字符串文字组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48156934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com