Printf不能在Apple Clang中打印到终端

时间:2016-02-16 17:01:22

标签: c macos printf

我们已经在我的Uni中开始进行C编程,而且我似乎已经陷入了第一道障碍。我非常简单的程序不会打印到终端。代码:

 #include "stdio.h"
     int main(){
     printf("Memory size for type %s = %lu \n", "double", sizeof(double));
     return 0;
 }    

我已经使用了所有的google-fu,并且发现我显然应该使用vprint,但它不会使用三个参数,只有两个。另外,奇怪的是,打印到文件工作!见截图:

Terminal screenshot

3 个答案:

答案 0 :(得分:1)

size_t的格式说明符(sizeof的返回类型)为%zu

 printf("Memory size for type %s = %zu \n", "double", sizeof(double));

答案 1 :(得分:0)

好吧,显然,当我只是运行程序时,Clang将输出打印到与代码相同的目录中的a.out,并且我无能为力。无论如何,只要代码有效 - 意味着我可以将其打开,并且我将使用./a.out检查我的工作。

答案 2 :(得分:0)

根据您的屏幕截图,这里似乎存在一种误解:

gcc 1.c

gcc用于编译程序(创建可执行文件,这里使用源文件1.c),而不是运行它。该程序可能已经以“a.out”的名称编译。

使用以下程序编译程序时

gcc 1.c -o 1.txt

您实际上正在使用gcc编译程序,并使用选项-o创建名称为1.txt的可执行文件(程序可以命名为您想要的任何名称,或几乎所有)

然后键入

./1.txt 

您实际上正在运行程序(1.txt)并且您有预期的输出。