C++:如何使用名称长度从内存中的字符指针取消引用多个字符

发布于 2024-11-03 14:37:07 字数 278 浏览 0 评论 0原文

这是代码:

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

它当然只输出第一个字符。如果我添加类似 ->filename[nameLen] 的内容,其中 nameLen 是有效整数(例如 10),它会显示:

* 的操作数必须是指针。

谢谢!

Here is the code:

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

It of course only outputs the first character. If I add something like ->filename[nameLen] where nameLen is a valid integer of say 10 it says:

operand of * must be a pointer.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迷爱 2024-11-10 14:37:07

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

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

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

If the string is terminated with \0, you could use %s instead:

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

You also will need to pass the memory address of filename, so lose the *symbol.

千纸鹤带着心事 2024-11-10 14:37:07

使用 %s,并删除 *

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

Use %s, and remove the *

 errorLog.OutputSuccess("Filename reference: %s", t_current_node->filename);
静赏你的温柔 2024-11-10 14:37:07
  • %c 打印单个字符。
  • %s 打印一个字符串:直到终止 \0 为止的所有字符。
  • %.10s 打印字符串的前 10 个字符(如果字符串较短,则更少)
  • %.*s 接受两个参数,一个指示要打印的长度的整数和一个字符串指针。

最后一种情况的示例:

printf("文件名引用:%.*s", nameLen, t_current_node->filename);

  • %c prints a single character.
  • %s prints a string: all characters up to the terminating \0.
  • %.10s prints the first 10 characters of a string (or less, if the string is shorter)
  • %.*s takes two arguments, an integer indicating the length to print, and a string pointer.

Example for the last case:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文