zsh printf 末尾出现% 的解决方法

zsh 下输出出现“%”

代码是简单的hello程序

#include <stdio.h>
int main() {
   // printf() displays the string inside quotation
   printf("Hello, World!");
   return 0;
}

zsh

➜  elf_learn ./hello 
Hello, World!%     

bash

lushan@app:~/Workshop/elf_learn$ ./hello 
Hello, World!

测试了一下,仅在 zsh 下出现这种情况

搜索结果 “printf adds mysterious trailing % character in zsh

当输出的最后一行没有 “/n” 时,zsh 会输出一个 “%”标志

解决办法:

   printf("Hello, World!\n");
➜  elf_learn ./hello 
Hello, World!

添加新评论

请不要水评论

已有 1 条评论

有没有试过这个呢?
char c = 3;
printf("Hello World%c", c);
或者
printf("Hello World\0");
毕竟这只是需要一个结尾符号而已。不过C在打印字符串之后不起新行的确看起来很难受就是了。 ╮(╯▽╰)╭