c++ - 使用 %。在 printf 中

标签 c++ c printf

我在 C++ 中遇到过这行代码。我不确定我是否理解语法。将两个变量传递给 printf,但只显示一个数字。

  printf("Value of bar is: [%.*s]\n", tok->len, tok->ptr);

最佳答案

格式字符串

%.*s

有两个参数。第一个指定精度,第二个是要打印的值。

假设 tok->len 的值为 3。那么你问题中的代码相当于:

printf("Value of bar is: [%.3s]\n", tok->ptr);

从良好的文档来源阅读更多相关信息,例如:http://en.cppreference.com/w/cpp/io/c/fprintf

至于精度在这种情况下意味着什么,上面的文档来源说:

Precision specifies the maximum number of bytes to be written.

这种写法有点草率。它应该说字符而不是字节。

关于c++ - 使用 %。在 printf 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320580/

相关文章:

c++ - strstream 和 stringstream 的区别

c++ - 将链接切割树的 C++ 实现转换为 C

c - 为什么这个函数最后需要 getchar()?我不明白为什么它在那里

c++ - 限制通过c++中的套接字传输的数据

c++ - TCHAR 仍然相关吗?

c# - 用于 GUI 编程的 C++ 与 C#

c - 优先函数和评估顺序 K&R

C: 无法让 fprintf 打印到输出文件

c - C 中字符串的开头和结尾对齐

C char数组不是字符串模式?