这是代码:
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);