为什么在执行没有“\ n”的printf后打印字符“%”?

问题描述 投票:1回答:2

这是我简单的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.%

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

c linux gcc printf
2个回答
2
投票

您的printf字符串不包含换行符。因此,在您的程序打印之后,您的shell通常会打印出任何字符串作为提示。

在我的机器上运行:

$ ./x1
Test.$ 

我的提示是“$”,这就是字符串后面出现的内容

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

printf("Test.\n");

输出:

$ ./x1
Test.
$ 

0
投票

尝试:

printf("Test.\n");

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

© www.soinside.com 2019 - 2024. All rights reserved.