c - linux终端输出冗余内容
问题描述
我的Linux是Arch,我的配置如下:
Kernel: 5.13.13-arch1-1
Packages: 490 (pacman)
Shell: zsh 5.8
WM: dwm
Terminal: st
Terminal Font: Source Code Pro
当我使用 C 输出语句时,例如printf
and putchar('A');
,如果我没有在末尾添加 \r 或 \n,我将在终端上得到一个额外的 '%' 字符。
$ ./a.out
A%
$
这个问题困扰了我很久,以至于不知道是谁的问题,用dwm?用嘘?用zhs?
解决方案
这是 zsh 的一个功能,用于显示程序何时结束而没有最后的换行符,并将 zsh 的命令提示符与程序输出区分开来。
您可以使用 zsh 命令禁用它PROMPT_EOL_MARK=''
。您也可以将其设置为其他内容,例如PROMPT_EOL_MARK=' -- The program did not end with a newline.'
.
推荐阅读
- json - Primefaces addCallbackParam 返回 empty:false 而不是实际对象
- php - 如何在 Symfony 4 用户检查器中翻译异常消息?
- perl - 如何检查数据库连接是否正确 [PERL]
- scala - 如何在 Scala 上编写具有限制的过滤器?
- c# - 如何使用 ??用 lambda 表达式?
- apache-spark - 使用 Kafka 进行 Spark Streaming 的心跳、轮询间隔和会话超时
- javascript - 在父 div 中添加类
- c# - 重建自动生成的 dll 后不会在其他项目中生成
- c# - 使用 Linq 在字符串 [,] 中搜索
- mysql - 我只需要从 login1 字段中检索日期,该字段是 varchar,其值类似于 1/24/2019 13:22:22?