printf相关内容

使用 printf 打印 UTF-8 字符串 - 宽与多字节字符串文字

在这样的语句中,两者都以相同的编码 (UTF-8) 输入到源代码中并且语言环境设置正确,它们之间有什么实际区别吗? printf("ο Δικαιοπολις εν αγρω εστιν\n");printf("%ls", L"ο Δικαιοπολις εν αγρω εστιν\n"); 因此,在输出时是否有任何理由更喜欢一个?我想第二个的性能会差一点,但它比多字节文字有什么优势(或劣势) ..
发布时间:2021-12-26 13:27:53 其他开发

time_t 是什么原始数据类型?

我不知道time_t 的数据类型.它是 float double 还是其他什么?因为如果我想显示它,我需要与 printf 对应的标签.我可以从那里处理其余的用于显示 time_t 但我需要知道与之对应的数据类型. 解决方案 不幸的是,它不是完全可移植的.它通常是整数,但它可以是任何“整数或真正的浮动类型". ..
发布时间:2021-12-25 13:13:15 其他开发

根据用户偏好进行过滤的包装 printf 函数

我的程序写入日志和标准输出.然而,每条消息都有一个特定的优先级,用户在首选项中指定哪些优先级属于哪个流(日志或标准输出). unsigned short PRIO_HIGH = 0x0001;无符号短 PRIO_NORMAL = 0x0002;无符号短 PRIO_LOW = 0x0004; 偏好由一些标志处理: unsigned short PRIO_LOG = (PRIO_HIGH | P ..
发布时间:2021-12-23 15:58:00 其他开发

C++:“float"的 printf() 格式规范是什么?

C++:float 的 printf() 格式规范是什么?(Visual C++) 过去我用 %g 表示 float 和 %lg 表示 double. 看起来规范已更改,float 未定义,double 为 %g. 我的内存中有一些要打印出来,因此无法选择强制转换. 有没有办法使用 printf() 打印出 float 值? 更新: 此代码是为对嵌入式系统上使用 ..
发布时间:2021-12-22 18:29:53 C/C++开发

scanf(或) printf 中的格式说明符错误

就printf函数而言,我从一些参考资料和实验中了解到以下内容. 当我们尝试使用用于浮点(或)双精度的格式说明符打印整数值时,反之亦然,行为是不可预测的. 但是可以使用 %c 打印与整数值等效的字符.也可以使用 %d 打印字符的 ASCII 值(整数表示). 同样,如果格式说明符和传递给 scanf 的参数不匹配,scanf 的行为是什么.标准是否定义了它? 解决方案 可变参 ..
发布时间:2021-12-21 17:35:01 其他开发

这个程序是如何运作的?

#include int main() {浮动 a = 1234.5f;printf("%d\n", a);返回0;} 它显示一个 0!!这怎么可能?这是什么道理? 我特意在printf语句中放了一个%d来研究printf的行为. 解决方案 那是因为 %d 需要一个 int 但你提供了一个浮点数. 使用 %e/%f/%g 打印浮点数. 关于为什么打印0:浮点数在发送到p ..
发布时间:2021-12-21 10:09:20 C/C++开发

printf 和 long double

我在 Windows 上使用带有 Netbeans 的最新 gcc.为什么 long double 不起作用?printf 说明符 %lf 错了吗? 代码: #include int main(void){浮船 = 32000.0;双重教唆 = 5.32e-5;长期双底= 5.32e-5;printf("%f 可以写成 %e\n", aboat, aboat);printf("%f 可以写 ..
发布时间:2021-12-18 22:30:55 其他开发

在 x86 nasm 32 位中使用 printf 打印浮点数

我正在尝试使用 NASM 风格的 x86 程序集打印出一些 32 位浮点数.这是我正在尝试做的最小工作示例: 全局主外部 printf, scanf.data 节scan_format: db "%f",0打印格式:db "%f",0xA,0.bss 节result_num: resb 4节.text主要的:推送 result_num推送扫描格式调用 scanf添加 esp, 8推双字 [res ..
发布时间:2021-12-18 09:36:16 其他开发

vararg 函数如何找出机器代码中的参数数量?

像 printf 这样的可变参数函数如何找出它们得到的参数数量? 参数的数量显然不是作为(隐藏的)参数传递的(参见 在此处的 asm 示例中调用 printf). 有什么诀窍? 解决方案 诀窍在于你以其他方式告诉他们.对于 printf,您必须提供一个格式字符串,其中甚至包含类型信息(尽管这可能不正确).提供此信息的方式主要是用户合同,而且通常容易出错. 至于调用约定:通 ..
发布时间:2021-12-18 09:22:05 其他开发

如何使用 printf 打印单精度浮点数

我正在尝试在 x86_64 程序集中打印一个浮点数,但它只是将值打印为零. 关于这个已经有几个问题了.一个似乎通过确保您在 %al 中设置您使用的向量寄存器的数量来解决.另一个显示您需要有 16 个字节的堆栈对齐.但是,我正在做这两件事,但仍然没有得到正确的输出. 这是我的程序: # 打印一个浮点值.section .rodata.fmt: .string "num: %f\n".n ..
发布时间:2021-12-18 08:41:36 其他开发

C++:如何将 fprintf 结果作为 std::string w/o sprintf

我正在使用一个用 C++ 实现的开源 UNIX 工具,我需要更改一些代码以使其执行我想要的操作.我想进行尽可能小的更改,以期让我的补丁在上游被接受.首选可在标准 C++ 中实现且不会创建更多外部依赖项的解决方案. 这是我的问题.我有一个 C++ 类——我们称它为“A"——它目前使用 fprintf() 将其高度格式化的数据结构打印到文件指针.在它的打印函数中,它还递归地调用了几个成员类的相同 ..
发布时间:2021-12-15 00:11:14 服务器开发

Haskell printf 如何工作?

Haskell 的类型安全性仅次于依赖类型的语言to none.但是 Text 有一些很深的魔法.Printf 看起来很奇怪. >printf "%d\n" 33>printf "%s %f %d" "foo" 3.3 3富 3.3 3 这背后的深层魔法是什么?Text.Printf.printf 函数如何接受这样的可变参数? 在 Haskell 中允许可变参数的通用技术是什么,它是如何 ..
发布时间:2021-12-14 12:00:28 其他开发

在 C++ 中打印出变量名的通用方法

给定一个类 struct {国际a1;布尔 a2;...字符* a500;...字符 a10000;} 我想打印或流式输出 "a1 值为 SOME_VALUE"“a2 值为 SOME_VALUE"“a500 值为 SOME_VALUE"...“a10000 值为 SOME_VALUE" 成员变量的类型不一样(主要是int、bool、char*等,即不需要重载 ..
发布时间:2021-12-13 21:28:08 C/C++开发

使用 printf 打印出浮点值

#include#includeint main(void){int x, *ptr_x;浮动 f , *ptr_f;ptr_f = &f;ptr_x = &x;*ptr_x = 5;*ptr_f = 1.5;//printf("%d %f\n", f,x);printf ("\n\nxd = %d \t xf = %f \n ff = %f \t fd = %d", x,x,f,f);返回0;} ..
发布时间:2021-12-13 13:17:31 其他开发

为什么 scanf 不需要字符串的&符号并且在 printf (在 C 中)中也可以正常工作?

我现在正在学习 C 中的字符串. 如何使用scanf来获取你可以做的字符串 scanf("%s",str1); 对于 printf 你可以做到 printf("字符串为 %s\n", str1); 我知道对于 scanf 来说,这是因为字符串只是一个字符数组,它是一个指针,但是对于 printf,你怎么能像输入 int 或 float 一样输入变量名? > 解决方案 scanf ..
发布时间:2021-12-13 13:09:55 其他开发

C: printf 中的 ptrdiff_t 应该使用哪个字符?

printf中的ptrdiff_t应该使用哪个字符? C标准是否清楚地解释了如何在printf中打印ptrdiff_t?我还没找到. int a = 1;整数 b = 2;int* pa = &a;int* pb = &b;ptrdiff_t diff = b - a;printf("diff = %?", diff);//% 什么? 解决方案 它是 %td.请参阅此处. ..
发布时间:2021-12-13 13:02:22 其他开发