有没有办法在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中显示变量?的主要内容,如果未能解决你的问题,请参考以下文章

当某些文件更改时,自动请求更改 Github 上的 PR

有Macbook 支持final cut与pr 是用pr好还是 final cut 哪个好

如何在 Mac 上的 Mac Catalyst 应用程序中使用钥匙串?

如何在 Mac 上的 NSScrollView 上执行 contentInset

有啥办法可以在 Mac 上的 android studio 3.5.1 中修复这个错误

系统中缺少框架,但 Mac/iOS 上的 XCode 中没有