printf相关内容

printf("%p") 并转换为 (void *)

在最近的一个问题中,有人提到用 printf 打印指针值时,调用者必须将指针强制转换为 void *,如下所示: int *my_ptr = ....printf("我的指针是:%p", (void *)my_ptr); 对于我的生活,我无法弄清楚为什么.我发现了这个问题,其中几乎是一样的.问题的答案是正确的 - 它解释了整数和指针的长度不一定相同. 这当然是对的,但是当我已经有一个指针 ..
发布时间:2021-12-13 12:45:38 其他开发

为什么不推荐使用带有单个参数(没有转换说明符)的 printf ?

在我正在阅读的一本书中,写到带有单个参数(没有转换说明符)的 printf 已被弃用.建议替换 printf("Hello World!"); 与 puts("Hello World!"); 或 printf("%s", "Hello World!"); 谁能告诉我为什么 printf("Hello World!"); 是错误的?书中写道,它包含漏洞.这些漏洞是什么? 解决方案 ..
发布时间:2021-12-13 09:45:47 其他开发

C:函数跳过代码中的用户输入

我遇到了这个功能(战舰游戏的一部分)的问题,它可以完美运行一次,但在随后的执行中,它会跳过: scanf("%c",&rChar); 出于某种原因,rChar 在没有用户从上面的代码输入的情况下变成了另一个值.我尝试在整个函数中放入 printf 语句,显示 rChar 的值. 函数 Conv_rChar_Int() 将用户输入的 Char 转换为整数值.但是因为 rChar 不是作为 ..
发布时间:2021-12-09 08:18:13 其他开发

混合 cout 和 printf 以获得更快的输出

在执行一些测试后,我注意到 printf 比 cout 快得多.我知道它依赖于实现,但在我的 Linux 机器上 printf 快 8 倍.所以我的想法是混合两种打印方法:我想使用 cout 进行简单的打印,我计划使用 printf 来产生巨大的输出(通常在循环中).我认为只要在切换到其他方法之前不要忘记刷新就可以安全: cout (std::cout, "\n"), count, string ..
发布时间:2021-12-08 11:41:25 C/C++开发

find 缺少选项 -printf,现在怎么办?

我还没有找到 Mac 的 find 没有选项 -printf 的原因.Apple 通常决定去掉与其他命令不正交的选项? 在没有 coreutils 的情况下,如何在 Mac 中获得与以下命令相同的结果? 查找.-printf "%i \n"//Ubuntu 中的命令 解决方案 并不是 Apple 删除了选项,而是 OS X 的 UNIX 基础大部分(迂回地)从 FreeBSD 派生而来 ..
发布时间:2021-12-06 20:55:42 其他开发

printf 未在控制台上打印

我刚开始使用 C 语言.我使用 eclipse (juno) 作为我的 IDE 并安装了 CDT 插件.我还解压了 mingw64(GCC 编译器).我写了一个非常简单的程序来看看它是否有效.这是我的代码: #include int main(){年龄;printf("您好,请输入您的年龄:\n");scanf("%d", &age);printf("你的年龄是 %d", age);返回0;} ..
发布时间:2021-12-06 14:45:02 Java开发

在 C 中打印十六进制字符

我试图读入一行字符,然后打印出这些字符的十六进制等效值. 例如,如果我有一个字符串 "0xc0 0xc0 abc123",其中前 2 个字符是 c0 十六进制,其余字符是 abc123 在 ASCII 中,那么我应该得到 c0 c0 61 62 63 31 32 33 然而,printf 使用 %x 给了我 ffffffc0 ffffffc0 61 62 63 31 32 33 如何 ..
发布时间:2021-12-02 08:26:21 其他开发

在 C 中打印前导 0

我正在尝试找到一种打印前导 0 的好方法,例如 邮政编码.虽然数字会被存储为 1001,但有什么好的方法可以做到? 我想过使用 case 语句或 if 来计算数字的位数,然后将其转换为 char 数组有额外的 0 用于打印,但我不禁想到可能有一种方法可以使用我无法理解的 printf 格式语法来做到这一点.> 解决方案 printf("%05d", zipCode); 0 表示填充的内 ..
发布时间:2021-12-02 08:16:54 其他开发

避免 printf() 中的尾随零

我一直对 printf() 系列函数的格式说明符感到困惑.我想要的是能够在小数点后打印具有最大给定位数的双精度(或浮点数).如果我使用: printf("%1.3f", 359.01335);printf("%1.3f", 359.00999); 我明白 359.013359.010 代替想要的 359.013359.01 有人可以帮我吗? 解决方案 使用普通的 printf ..
发布时间:2021-12-02 08:06:15 其他开发

printf 中 double 的正确格式说明符

printf 中 double 的正确格式说明符是什么?是 %f 还是 %lf?我相信它是 %f,但我不确定. 代码示例 #include int main(){双 d = 1.4;printf("%lf", d);//这是错误的吗?} 解决方案 "%f" 是(或至少一种)双精度型的正确格式.没有 float 的格式,因为如果您尝试将 float 传递给 printf,它会在print ..
发布时间:2021-12-02 00:04:14 其他开发

如何使用 printf 系列可移植地打印 size_t 变量?

我有一个 size_t 类型的变量,我想使用 printf() 打印它.我使用什么格式说明符来便携地打印它? 在 32 位机器中,%u 似乎是正确的.我用 g++ -g -W -Wall -Werror -ansi -pedantic 编译,没有警告.但是当我在 64 位机器上编译该代码时,它会产生警告. size_t x = ;printf("size = %u\n ..
发布时间:2021-12-02 00:01:59 其他开发

printf 宽度说明符以保持浮点值的精度

是否有一个 printf 宽度说明符可以应用于浮点说明符,该说明符会自动将输出格式化为必要数量的有效数字,以便在扫描string back in,获取的是原来的浮点值? 例如,假设我将 float 打印到 2 个小数位的精度: float foobar = 0.9375;printf("%.2f", foobar);//打印出 0.94 当我扫描输出 0.94 时,我没有符合标准的保证我 ..
发布时间:2021-12-01 23:45:48 其他开发

是否有以二进制格式打印的 printf 转换器?

我可以使用 printf 作为十六进制或八进制数打印.是否有格式标签可以打印为二进制或任意基数? 我正在运行 gcc. printf("%d %x %o\n", 10, 10, 10);//打印“10 A 12\n";打印(“%b\n",10);//打印“%b\n" 解决方案 Print Binary for Any Datatype //假设为小端void printBits(si ..
发布时间:2021-12-01 23:40:57 其他开发

你如何允许使用 scanf 输入空格?

使用以下代码: char *name = malloc(sizeof(char) + 256);printf("你叫什么名字?");scanf("%s", 姓名);printf("你好 %s.很高兴认识你.\n", name); 用户可以输入他们的名字,但是当他们输入一个像Lucas Aardvark这样带有空格的名字时,scanf()只会切断Lucas之后的所有内容代码>.如何让 scanf ..
发布时间:2021-12-01 23:39:34 其他开发

“fork()"之后的printf异常

操作系统:Linux,语言:纯C 我正在学习一般的 C 编程,在特殊情况下学习 UNIX 下的 C 编程. 在使用 fork() 调用后,我检测到 printf() 函数的一个奇怪的(对我来说)行为. 代码 #include #include int main(){int pid;printf("你好,我的 pid 是 %d", getpid());pid = fork();如 ..
发布时间:2021-12-01 23:39:14 服务器开发

为什么 printf 在调用后不会刷新,除非格式字符串中有换行符?

为什么printf 不会在调用后刷新,除非格式字符串中有换行符?这是 POSIX 行为吗?我怎样才能让 printf 每次都立即刷新? 解决方案 stdout 流在默认情况下是行缓冲的,因此只会在到达换行符后(或告诉).您有几个选项可以立即打印: 打印到 stderr 而不是使用 fprintf(stderr 是 默认无缓冲): fprintf(stderr, “我会立即打印"); ..
发布时间:2021-12-01 23:34:55 其他开发

C++ 中的“printf"与“cout"

printf() 和 cout 在 C++ 中?> 解决方案 我很惊讶这个问题中的每个人都声称 std::cout 比 printf 好得多>,即使问题只是要求差异.现在,有一个区别 - std::cout 是 C++,而 printf 是 C(但是,您可以在 C++ 中使用它,就像 几乎 来自 C) 的任何其他内容.现在,我会在这里诚实;printf 和 std::cout 各有优势. ..
发布时间:2021-12-01 15:41:48 C/C++开发