这是代码:
errorLog.OutputSuccess("Filename reference: %c", *t_current_node->filename);
它当然只输出第一个字符。如果我添加类似->filename[nameLen]
nameLen 是 10 的有效整数的东西,它会说:
* 的操作数必须是指针。
谢谢!
这是代码:
errorLog.OutputSuccess("Filename reference: %c", *t_current_node->filename);
它当然只输出第一个字符。如果我添加类似->filename[nameLen]
nameLen 是 10 的有效整数的东西,它会说:
* 的操作数必须是指针。
谢谢!
如果字符串以 结尾\0
,您可以%s
改用:
errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);
您还需要传递文件名的内存地址,因此丢失*
符号。
使用 %s,然后删除*
errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);
%c
打印单个字符。%s
打印一个字符串:直到终止符的所有字符\0
。%.10s
打印字符串的前 10 个字符(或更少,如果字符串较短)%.*s
接受两个参数,一个指示要打印的长度的整数和一个字符串指针。最后一种情况的示例:
printf("Filename reference: %.*s", nameLen, t_current_node->filename);