我在 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/