如何使用名称长度从内存中的字符指针中解引用多个字符



代码如下:

errorLog.OutputSuccess("Filename reference: %c", *t_current_node->filename);

它当然只输出第一个字符。如果我加上->filename[nameLen]其中nameLen是一个有效的整数比如10它会显示:

*的操作数必须是指针

谢谢!

如果字符串以结尾,则可以使用%s:

errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);

您还需要传递文件名的内存地址,因此丢掉*符号。

使用%s,并删除*

 errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);
  • %c打印单个字符。
  • %s打印一个字符串:所有字符直到结束
  • %.10s打印字符串的前10个字符(如果字符串较短,则更少)
  • %.*s接受两个参数,一个表示要打印的长度的整数和一个字符串指针。

最后一个例子:

printf("Filename reference: %.*s", nameLen, t_current_node->filename);

相关内容

  • 没有找到相关文章

最新更新