问题标签 [format-specifiers]

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 回答
41315 浏览

c - scanf 中用于 C 中 bool 数据类型的格式说明符

我在 C std99 中使用 bool 数据类型,其定义在<stdbool.h>. 现在我希望用户给我输入。我必须在 scanf 中使用什么格式说明符来输入来自用户的 1 个字节的布尔值,然后在我的程序中对其进行操作。

0 投票
5 回答
621 浏览

c - C中的浮点变量

可能这是一个简单的问题,但我不确定浮点变量如何存储在内存中以及为什么它会以这种方式运行,有人可以解释一下以下行为。

输出:

我查看了一些关于浮点变量如何存储在内存中的信息,它包含关于尾数、指数和符号的内容。但我不知道如何在这里联系起来。

0 投票
2 回答
314 浏览

c - 在没有对应值的 printf() 中使用格式说明符

这是一个快速的问题。

当您在要打印的字符串中使用格式说明符,但未列出要在字符串后面替换占位符的任何值时,您会得到看似随机的数字,例如 2627389、6278253 等作为输出。这是一个例子:

输出看起来像:

我想知道为什么会发生这种情况,以及这些数字是什么意思。如果你有一个想法,那真的很有帮助。谢谢。

0 投票
4 回答
5326 浏览

c - 为什么 scanf("%d", [...]) 不消耗 '\n'?而 scanf("%c") 呢?

在这里,我在接受的答案中看到了这个声明:

大多数转换说明符会跳过包括换行符在内的前导空格,但%c不会。

对我来说,不清楚这种不同行为的基本原理,我会期待一个统一的行为(例如总是跳过或从不)。

我用这样的一段 C 代码遇到了这种问题:

交换两个scanfs 和 (commented) 可以解决问题,getchar否则'\n'第一个插入的 s 将被第二个scanfwith消耗%c。我在 linux 和 windows 上都在 gcc 上进行了测试,行为是一样的:

gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2)
版权所有 (C) 2012 Free Software Foundation, Inc.
这是免费软件;查看复制条件的来源。没有保修;甚至不考虑适销性或特定用途的适用性。

所以我的问题是:为什么%d%c行为不同?'\n'scanf

0 投票
3 回答
2606 浏览

xcode - NSLog 给了我无法纠正的警告

我的 Mac OS X 应用程序中有以下代码行:

我收到警告:“格式指定类型'long',但参数的类型为'NSUInteger'(又名'unsigned int')”

但是,如果我将代码更改为:

我收到警告:

格式指定类型“unsigned int”,但参数的类型为“NSUInteger”(又名“unsigned long”)

所以我把它改成

但我收到警告:格式指定类型“无符号长”但参数类型为“NSUInteger”(又名“无符号整数”)

如何设置我的 NSLog 使其不产生警告?如果我遵循 Xcode 的建议,我只会陷入更改格式说明符的无限循环,但警告永远不会消失。

0 投票
4 回答
3283 浏览

c++ - 是否有一个 printf 说明符需要浮点数而不是双精度数?

当我将 "%f" 说明符用于snprintftype 的参数时,我收到 MISRA 类型错误float

根据我的研究,MISRA 是正确的,因为 "%f" 需要一种double.

float是否存在将使用类型参数而不是 的浮点说明符或修饰符double

我正在开发嵌入式系统,不想double为了取悦snprintf功能而从 32 位浮点转换为 64 位。代码打印到调试/控制台端口,这是唯一发生转换的地方。

对于那些需要代码示例的人:

我对 SO 和 Web 的所有研究都是关于打印一个浮点值,而不是关于哪些说明符需要一个float参数以便不会double发生任何提升。

我正在为 ARM7TDMI 处理器使用 IAR Embedded Workbench 编译器。

0 投票
1 回答
5149 浏览

c - “声明说明符中的两个或多个数据类型”错误是什么意思?

当我在 gcc 中运行上述代码时,它没有显示任何错误。但是当我运行下面的代码时,它会抛出一条错误消息“声明说明符中有两种或多种数据类型”。

谁能解释一下这个错误是怎么回事?

0 投票
2 回答
120 浏览

objective-c - Objective-C 连续格式说明符打印 0

这是我遇到的一个小问题,虽然它看起来很简单,但我找不到它,这里是代码:

它的输出:

有人能告诉我为什么第二个说明符打印 0 吗?我该如何解决?

谢谢!

0 投票
2 回答
1861 浏览

c - 使用 %s 即字符串说明符读取 char 数组

使用上述方法,我们可以为 char 数组分配内存。但是是否逐个字符地阅读它是强制性的? How to read and access it using%s` 即字符串格式说明符?

0 投票
2 回答
2549 浏览

cuda - (int) -1 的 CUDA 内核 printf 使用 %d 说明符给出错误的输出

当用 C 告诉我的电脑时

我确实期望并且通常也会得到“-1”响应。然而,在我的 Tesla M2090 Nvidia Card 上,我的基于 Ubuntu 的 Cuda 5.0 与这个无辜的演示程序通话

通过编译和调用

产生输出:

最后一个数字实际上是某种随机数(两个后续调用返回不同的结果),就好像内存分配有问题一样。-1 之前的 (int) 已经是反复试验。原始程序没有它。

这里有一个问题:有人知道为什么没有写-1,如果是这样,你能告诉我为什么吗?非常感谢,马库斯。