问题标签 [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 投票
1 回答
297 浏览

php - 愚蠢的 sprintf() 问题

如何向其中添加 SQL 通配符:

作为

爆炸成壮观的火球,

PS对不起这个相当基本的问题。这些天我正在减少我的咖啡。

0 投票
3 回答
1063 浏览

java - Java 中的 printf() 功能与 CharBuffer 或类似的东西相结合

我在这里有点困惑。

我想做这样的事情:

  1. 创建某种我可以写入的缓冲区
  2. 清除缓冲区
  3. 根据一些我只想做一次的复杂计算,多次使用类似 printf() 的函数将一堆东西附加到缓冲区中
  4. 使用缓冲区的内容并将其打印到多个PrintStream对象
  5. 根据需要重复步骤 2-4

例如:

看起来像在StringWriter周围包装PrintWriter会为上面的对象做我想要的,除了没有方法。我想我可以每次通过循环创建一个新的 PrintWriter 和 StringWriter 对象,但这似乎很痛苦。(在我的真实代码中,我在多个地方执行此操作,而不仅仅是一次循环......)sbclear()

我也经常使用java.nio.CharBuffer其他 NIO 缓冲区,这似乎是一种很有前途的方法,但我不确定如何将它们包装成一个可以为我提供printf()功能的对象。

有什么建议吗?

0 投票
6 回答
15935 浏览

c - 在不提供变量名的情况下打印 %d 时 printf 的行为

我刚刚遇到一个奇怪的问题,我正在尝试 printf 一个整数变量,但是我忘记指定变量名,即

代替

令人惊讶的是,程序可以编译,有输出,而且不是随机的。事实上,它恰好是我最初想要打印的整数,恰好是 m-1。

只要程序继续运行,错误printf语句将始终输出 m-1 ......换句话说,它的行为就像语句读取一样

有人知道这种行为背后的原因吗?我正在使用没有任何命令行选项的 g++。

0 投票
7 回答
13275 浏览

c++ - 如何使用 fprintf/printf 打印出破折号或圆点?

截至目前,我正在使用下面的行打印不带点的

我期望输出将类似于以下内容,

如何使用 fprintf/printf 打印出破折号或圆点?

0 投票
13 回答
26703 浏览

c++ - C++ 的 String.Format

正在寻找 .NET 的 String.Format 等函数的 C++ 实现。显然有 printf 和它的品种,但我正在寻找一些位置如下的东西:

String.Format("您好,{0}。您已经 {1} 岁。成为 {1} 的感觉如何?", name, age);

这是必要的,因为我们将尝试使本地化我们的应用程序变得更容易,并且让翻译者 {0} 和 {1} 定位在句子中的任何位置比给他们一个 %s、%d、% 容易得多d 在翻译中必须按该顺序定位。

我想用变量输入(va_start、va_end 等)搜索和替换是我最终要构建的,但如果已经有一个可靠的解决方案,那将是可取的。

谢谢 :)

0 投票
4 回答
8859 浏览

c - 如果没有 C 中的库函数,您将如何打印变量的任何字符、字符串或值?

例如,如果我不应该使用标准库函数printf()putchar()那么如何将字符打印到屏幕上?

有没有一种简单的方法来做到这一点。我对系统调用了解不多,如果我必须使用它们,那么我该如何使用它们?那么任何人都可以建议一种不使用库函数的简单打印方法吗?

0 投票
4 回答
29244 浏览

c - 在纯 C 中打印 void 类型

我有一个功能

我想传递一个 void 指针并将其打印到屏幕上。如果 i 是整数、浮点数或双精度,则上面的示例很好,但如果 i 是字符,则崩溃。C 中没有像我通常在 C++ 中使用的重载。所以问题是这样的,我们是否可以在 C 中创建一个函数来打印它的参数元素,如果是的话,这怎么可能,因为此刻我完全无法理解。

0 投票
4 回答
1820 浏览

c - 创建一个将数据发送到 sprintf 和普通 printf 的 my_printf?

我正在使用 printf 和编写调用普通 printf 的 my_printf(...) 和将结果发送到特殊函数的 sprintf 的想法。(我在考虑 sprintf 因为它在大多数平台上的行为就像 printf 一样)。

我的想法是写一个小宏来做到这一点:

但是由于 sprintf 可以将字符串扩展为比 X 大得多的大小,因此该方法几乎直接中断。

而且只是添加一个数字做 malloc 似乎是解决问题的错误方法,从那时起我就把问题移到未来和我想要打印一个大表达式的一天......

有没有人对如何解决这个问题有更好的想法?或者我怎么知道 sprintf 结果有多大?

谢谢约翰


更新:我忘记了 printf 返回它打印多少个字符,并且由于我已经在宏中调用 printf ,因此添加一个保存数字的 int 是一件非常容易的事情。

更新:我正在考虑这个问题,也许使用一个看起来很像 ehemient 建议的正常功能是个好主意。那里的关键似乎是不同 printf 函数(vprintf、vsprintf 和 vsnprintf)的 v 版本。感谢您指出了这一点。

再次感谢约翰

0 投票
5 回答
9634 浏览

c - 在 bash 中重定向 C 程序输出的问题

我用 C 编写了一个程序,该程序使用 printf 将消息发送到标准输出,但我无法将输出重定向到文件(从 bash 运行)。

我试过了:

在每种情况下,都会创建文件 program.out,但它仍然为空。执行结束后文件大小为0。

如果我在执行程序时省略了重定向:

然后,使用 printf 发送到标准输出的所有消息都显示在终端中。

我有其他 C 程序,以这种方式重定向输出没有问题。跟程序本身有关系吗?随着论点通过?应该从哪里寻找问题?

C程序的一些细节:

  • 它不从标准输入读取任何内容
  • 它使用 BSD Internet 域套接字
  • 它使用 POSIX 线程
  • 它使用 sigaction 为 SIGINT 信号分配一个特殊的处理函数
  • 它向标准输出发送大量换行符(对于那些认为我应该刷新的人)

一些代码:

0 投票
7 回答
6007 浏览

c++ - 有什么方法可以确定 sprintf 将写入多少个字符?

我正在使用 C++。

我想使用 sprintf 编写一个可能很长的格式化字符串(特别是像 _snprintf_s 这样的安全计数版本,但想法是一样的)。近似长度在编译时是未知的,所以我将不得不使用一些动态分配的内存,而不是依赖一个大的静态缓冲区。有什么方法可以确定特定的 sprintf 调用需要多少个字符,这样我就可以始终确定我有足够大的缓冲区?

我的后备方案是我将获取格式字符串的长度,将其加倍,然后尝试。如果有效,那就太好了,如果无效,我将缓冲区的大小加倍,然后再试一次。重复直到合适。不完全是最聪明的解决方案。

看起来 C99 支持将 NULL 传递给 snprintf 以获取长度。我想如果没有别的,我可以创建一个模块来包装该功能,但我对这个想法并不疯狂。

也许 fprintf 到 "/dev/null"/"nul" 可能会起作用?还有其他想法吗?

编辑:或者,有没有办法“分块” sprintf 以便它在写入过程中拾取?如果可能的话,它可以填充缓冲区,处理它,然后从它停止的地方开始重新填充。