问题标签 [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.
php - 愚蠢的 sprintf() 问题
如何向其中添加 SQL 通配符:
作为
爆炸成壮观的火球,
PS对不起这个相当基本的问题。这些天我正在减少我的咖啡。
java - Java 中的 printf() 功能与 CharBuffer 或类似的东西相结合
我在这里有点困惑。
我想做这样的事情:
- 创建某种我可以写入的缓冲区
- 清除缓冲区
- 根据一些我只想做一次的复杂计算,多次使用类似 printf() 的函数将一堆东西附加到缓冲区中
- 使用缓冲区的内容并将其打印到多个
PrintStream
对象 - 根据需要重复步骤 2-4
例如:
看起来像在StringWriter周围包装PrintWriter会为上面的对象做我想要的,除了没有方法。我想我可以每次通过循环创建一个新的 PrintWriter 和 StringWriter 对象,但这似乎很痛苦。(在我的真实代码中,我在多个地方执行此操作,而不仅仅是一次循环......)sb
clear()
我也经常使用java.nio.CharBuffer
其他 NIO 缓冲区,这似乎是一种很有前途的方法,但我不确定如何将它们包装成一个可以为我提供printf()
功能的对象。
有什么建议吗?
c - 在不提供变量名的情况下打印 %d 时 printf 的行为
我刚刚遇到一个奇怪的问题,我正在尝试 printf 一个整数变量,但是我忘记指定变量名,即
代替
令人惊讶的是,程序可以编译,有输出,而且不是随机的。事实上,它恰好是我最初想要打印的整数,恰好是 m-1。
只要程序继续运行,错误printf
语句将始终输出 m-1 ......换句话说,它的行为就像语句读取一样
有人知道这种行为背后的原因吗?我正在使用没有任何命令行选项的 g++。
c++ - 如何使用 fprintf/printf 打印出破折号或圆点?
截至目前,我正在使用下面的行打印不带点的
我期望输出将类似于以下内容,
如何使用 fprintf/printf 打印出破折号或圆点?
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 等)搜索和替换是我最终要构建的,但如果已经有一个可靠的解决方案,那将是可取的。
谢谢 :)
c - 如果没有 C 中的库函数,您将如何打印变量的任何字符、字符串或值?
例如,如果我不应该使用标准库函数printf()
,putchar()
那么如何将字符打印到屏幕上?
有没有一种简单的方法来做到这一点。我对系统调用了解不多,如果我必须使用它们,那么我该如何使用它们?那么任何人都可以建议一种不使用库函数的简单打印方法吗?
c - 在纯 C 中打印 void 类型
我有一个功能
我想传递一个 void 指针并将其打印到屏幕上。如果 i 是整数、浮点数或双精度,则上面的示例很好,但如果 i 是字符,则崩溃。C 中没有像我通常在 C++ 中使用的重载。所以问题是这样的,我们是否可以在 C 中创建一个函数来打印它的参数元素,如果是的话,这怎么可能,因为此刻我完全无法理解。
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 版本。感谢您指出了这一点。
再次感谢约翰
c - 在 bash 中重定向 C 程序输出的问题
我用 C 编写了一个程序,该程序使用 printf 将消息发送到标准输出,但我无法将输出重定向到文件(从 bash 运行)。
我试过了:
在每种情况下,都会创建文件 program.out,但它仍然为空。执行结束后文件大小为0。
如果我在执行程序时省略了重定向:
然后,使用 printf 发送到标准输出的所有消息都显示在终端中。
我有其他 C 程序,以这种方式重定向输出没有问题。跟程序本身有关系吗?随着论点通过?应该从哪里寻找问题?
C程序的一些细节:
- 它不从标准输入读取任何内容
- 它使用 BSD Internet 域套接字
- 它使用 POSIX 线程
- 它使用 sigaction 为 SIGINT 信号分配一个特殊的处理函数
- 它向标准输出发送大量换行符(对于那些认为我应该刷新的人)
一些代码:
c++ - 有什么方法可以确定 sprintf 将写入多少个字符?
我正在使用 C++。
我想使用 sprintf 编写一个可能很长的格式化字符串(特别是像 _snprintf_s 这样的安全计数版本,但想法是一样的)。近似长度在编译时是未知的,所以我将不得不使用一些动态分配的内存,而不是依赖一个大的静态缓冲区。有什么方法可以确定特定的 sprintf 调用需要多少个字符,这样我就可以始终确定我有足够大的缓冲区?
我的后备方案是我将获取格式字符串的长度,将其加倍,然后尝试。如果有效,那就太好了,如果无效,我将缓冲区的大小加倍,然后再试一次。重复直到合适。不完全是最聪明的解决方案。
看起来 C99 支持将 NULL 传递给 snprintf 以获取长度。我想如果没有别的,我可以创建一个模块来包装该功能,但我对这个想法并不疯狂。
也许 fprintf 到 "/dev/null"/"nul" 可能会起作用?还有其他想法吗?
编辑:或者,有没有办法“分块” sprintf 以便它在写入过程中拾取?如果可能的话,它可以填充缓冲区,处理它,然后从它停止的地方开始重新填充。