问题标签 [printf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
13649 浏览

c++ - 舍入双打 - .5 - sprintf

我正在使用以下代码舍入到 2dp:

它成功地将 6.666 舍入到 6.67,但在舍入 5.555 时无法正常工作。它返回 5.55,而它应该(至少在我看来)返回 5.56。

当下一个数字是 5 时,我怎样才能让它四舍五入?即返回 5.56。

编辑:我现在意识到这种情况正在发生,因为当我用 cin 输入 5.555 时,它被保存为 5.554999997。

我将尝试分两个阶段进行舍入——首先到 3dp,然后到 2dp。还有其他(更优雅)的想法吗?

0 投票
2 回答
14541 浏览

gcc - 如何使用 GCC 属性“格式”?

这是一小段代码:

我正在用 GCC 4.0 编译它,在 Mac OS X Leopard 上运行 Xcode。
-Wformat 和 -Wmissing-format-attribute 已启用。
此代码在第 9 行(调用vprintf)给出警告,表明MyPrintf可以使用“格式”属性:

函数可能是“printf”格式属性的候选者

所以我以这种方式添加属性(不确定这是否正确):

之前的警告消失了,同样的警告现在出现在第 16 行(调用MyPrintf),表明MyVariadicPrintf可以使用 'format' 属性。
所以我以这种方式添加属性(很确定这次是正确的):

现在我在第 22 行得到了预期的警告(调用MyVariadicPrintf):

格式参数太少

  1. 我做对了吗?
  2. 我注意到在MyPrintf声明时,如果我删除属性部分,我仍然会在第 22 行得到想要的警告。我还注意到,在这个属性部分中,将索引从 1 更改为 2 不会给出任何警告或错误。哪一个是正确的,这个函数的属性的目标是什么?
  3. 如果我添加以下函数MyVariadicPrintfT并调用它(专用于char),我将收到建议在此函数上使用“格式”属性的警告。我认为这是不可能的,因为format参数取决于模板类型。我对吗?

    /li>

最新的 gnu 文档可以在gnu.org找到。
警告选项在第 3.8 节中(查找“-Wmissing-format-attribute”)。
函数属性在第 6.30 节中(查找“格式(原型,字符串索引,首先检查)”)。

谢谢。

0 投票
6 回答
60321 浏览

c - %*s 格式说明符是什么意思?

在我必须维护的一些代码中,我看到了格式说明符%*s。谁能告诉我这是什么以及为什么使用它?

其用法示例如下:

0 投票
5 回答
19529 浏览

oracle - Oracle 'printf' 等价物

以下是否有等效或替代方法?

Oracle 是否有类似 printf 样式的格式?

0 投票
1 回答
15336 浏览

matlab - 显示来自 MATLAB 的信息而无需换行

有没有什么方法可以在没有结束换行的情况下从 MATLAB 程序输出/显示信息?

我的 MATLAB 程序时不时地输出一个数字。在输出数字之间,程序做了很多其他的事情。这是一个主要用于指示某种进度的结构,最好不要每次都换行,只是为了让用户更容易阅读。这大约是我正在寻找的:

如果程序仍在做与以前相同的事情,则程序的下一个输出将位于同一行。

我已经阅读了有关 disp、sprintf 和 format 的文档,但没有找到我要查找的内容。这并不意味着它不存在。;)

0 投票
3 回答
6811 浏览

c - C: 通过 printf() 打印双精度可以多长时间

我需要指定要从双精度值打印的字符串的确切长度,但我不想限制输出超出必要的范围。

用 printf() 格式化时,6 位精度双精度的最大长度是多少?

具体来说,我应该给 X in 什么值printf("%X.6lg",doubleValue);以确保没有值被截断?

我需要具体说明长度的原因是我正在定义一个 MPI 派生数据类型,它由许多双精度值的字符串表示形式组成,并且必须知道它们的确切长度才能在 MPI 进程之间划分文件区域。

我希望这很清楚。提前感谢您的回答。

0 投票
3 回答
14972 浏览

php - 为什么 sprintf() 不输出任何东西?

我以前从未使用过这些函数,但在阅读了很多关于 sprintf() 的内容后,我决定我应该了解它。

所以我继续做以下事情。

它什么也不打印。另一方面,使用 printf() 函数:

它打印结果就好了。那么这两个函数有什么区别,我该如何正确使用 sprintf() 函数呢?

0 投票
2 回答
474 浏览

c++ - C++ 中奇怪的标准输出行为

我希望我的程序在处理时显示 unix 风车。有一个 for 循环,在每次迭代中都有一个 printf 函数:

q 是风车 (-\|/) 中的字符之一,具体取决于迭代次数。

问题是 - 似乎在 100 次迭代中,显示的行只有两次变化,每次迭代大约需要一秒钟才能完成。

这可能是什么原因?

这是风车只有两个可能的字符的整个循环:

0 投票
7 回答
129545 浏览

c++ - 如何将可变数量的参数传递给 printf/sprintf

我有一个类包含一个“错误”函数,它将格式化一些文本。我想接受可变数量的参数,然后使用 printf 格式化它们。

例子:

Error 方法应该接受参数,调用 printf/sprintf 对其进行格式化,然后对其进行处理。我不想自己编写所有格式,因此尝试弄清楚如何使用现有格式是有意义的。

0 投票
4 回答
6366 浏览

c++ - 关于 printf 参数的问题。C/C++

我们有以下代码片段:

而且我不明白为什么我们在调用printf. 我确实收到警告但没有错误,并且程序运行正常。它打印' 12'。
printf期待一个类型的参数char *,即指向 的指针char。因此,如果我声明char arr[3], thenarr是包含 a 的内存单元的地址char,所以如果我用它调用printf它,它将衰减为指向 char的指针,即char *
类似地,tab内存单元的地址包含3 个字符的类型数组,而内存单元的地址包含char,因此tab将衰减到char **,这应该是一个问题,因为printf期望char *.

有人可以解释这个问题吗?

附录:

我得到的警告是:
a.c:6: warning: char format, different type arg (arg 2)