为什么选择"%"在没有" \ n"?的情况下执行printf后打印

时间:2018-02-14 21:53:57

标签: c linux gcc printf

这是我的简单c代码。谁能告诉我为什么它给我这个输出? 我正在使用gcc编译器(版本:7.3.0)在arch linux 4.15.1-2-ARCH机器上编码 我编译:gcc --std = c99 -Wall --pedantic client.c -o client

我有以下代码:

#include <stdio.h>

int main(void) {
  printf("Test.");
  return 0;
}

但它得到以下输出:     Test.%

我不知道%的来自哪里。如果有人能给我一个提示,那就太好了。

2 个答案:

答案 0 :(得分:2)

您的printf字符串不包含换行符。因此,在您的程序打印之后,您的shell通常打印的任何字符串将立即显示。

在我的机器上运行:

$ ./x1
Test.$ 

我的提示是&#34; $&#34;,以便在字符串后显示的内容

\n(换行符的转义序列)添加到字符串中会使您的提示出现在以下行中:

printf("Test.\n");

输出:

$ ./x1
Test.
$ 

答案 1 :(得分:0)

尝试:

printf("Test.\n");

程序打印的单词Test.可能与终端提示符的第一个字符一起加入。添加\n将打印换行符,因此当您的程序退出时,终端提示将写在下一行。