有没有办法在mac上的printf中显示变量?
Posted
技术标签:
【中文标题】有没有办法在mac上的printf中显示变量?【英文标题】:Is there a solution to show the variable in printf on mac? 【发布时间】:2020-03-04 16:02:41 【问题描述】:我使用 mac 的终端来编译 .c 文件。 终端指令作为流程: gcc output0.c; ./a.out;
代码:
#include <stdio.h>
int main(void)
int n;
n = 1;
printf("fix 3: %c \n",n);
return 0;
结果为流: 修复 3:
问题:为什么不显示变量1。
MacOs 版本:10.13.4 高山
gcc信息: 配置: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM 版本 10.0.0 (clang-1000.10.44.4) 目标:x86_64-apple-darwin17.5.0 线程模型:posix 安装目录:/Library/Developer/CommandLineTools/usr/bin
【问题讨论】:
%c
是 char 而非 int (%i
) 的格式,0x01
不是可打印字符,它是“标题开头”的控制字符
1 != '1'
。这是了解原因的好机会!
【参考方案1】:
这与您使用的是 Mac 无关。 格式说明符 说明如何解释屏幕上打印的值。 %c
格式说明符将打印的值解释为 ASCII 字符集的 ASCII 代码。也就是说,它将打印 ASCII 码与 n
的值匹配的字符。在这种情况下,n = 1
是不可打印字符的 ASCII 码,称为 head of header,这就是您看不到它的原因。 Here's 完整的 ASCII 表和更多信息。尝试将格式说明符更改为 %i
以表示整数。并查看this reference 以获取有关printf
和其他格式说明符的信息。
【讨论】:
以上是关于有没有办法在mac上的printf中显示变量?的主要内容,如果未能解决你的问题,请参考以下文章
有Macbook 支持final cut与pr 是用pr好还是 final cut 哪个好
如何在 Mac 上的 Mac Catalyst 应用程序中使用钥匙串?
如何在 Mac 上的 NSScrollView 上执行 contentInset