为什么在执行没有“ n”的printf后打印字符“%”?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么在执行没有“ n”的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.%
我不知道%来自哪里。如果有人能给我一个提示,那就太好了。
答案
您的printf
字符串不包含换行符。因此,在您的程序打印之后,您的shell通常会打印出任何字符串作为提示。
在我的机器上运行:
$ ./x1
Test.$
我的提示是“$”,这就是字符串后面出现的内容
将
(换行符的转义序列)添加到字符串将使您的提示出现在以下行:
printf("Test.
");
输出:
$ ./x1
Test.
$
另一答案
尝试:
printf("Test.
");
您的程序打印的单词Test.
可能与终端提示符的第一个字符一起加入。添加
将打印一个新的行字符,因此当您的程序退出时,您的终端提示将写在下一行。
以上是关于为什么在执行没有“ n”的printf后打印字符“%”?的主要内容,如果未能解决你的问题,请参考以下文章
printf() 在没有双引号的情况下工作,打印随机字符 [重复]