ubuntu 16.04 C 输出多余字符

C、C++和Java语言
回复
AllenZF
帖子: 2
注册时间: 2016-04-12 18:47
系统: Ubuntu
送出感谢: 0
接收感谢: 0

ubuntu 16.04 C 输出多余字符

#1

帖子 AllenZF » 2016-09-14 11:18

源码
#include <stdio.h>
int main(void){
int a=2002;
printf("%d",a );
return 0;
}
输出:
➜ gcc -Wall -g test_sys_info.cpp -o test
➜ ./test
2002%
问题:输出为什么多一个百分号?
头像
vickycq
论坛版主
帖子: 4507
注册时间: 2011-03-20 13:12
系统: Debian
来自: 山东省寿光县
送出感谢: 100 次
接收感谢: 995 次
联系:

Re: ubuntu 16.04 C 输出多余字符

#2

帖子 vickycq » 2016-09-14 12:03

AllenZF 写了: printf("%d",a );
➜ ./test
2002%
问题:输出为什么多一个百分号?
猜测 当前命令提示符为百分号,或当前 shell 为 csh 且提示符为默认样式百分号。
由于 printf 未输出换行符,导致提示符附在输出之后。

代码: 全选

$ csh
% ./test
2002% 
% echo $shell           
/bin/csh
% exit
$ ./test
2002$ 
$ echo $SHELL
/bin/bash
$ PS1='% '  
% ./test
2002% 
%
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: ubuntu 16.04 C 输出多余字符

#3

帖子 lilydjwg » 2016-10-31 18:16

当程序的输出最后一行不完整(没有换行符)时,zsh 会打一个反白的 % 然后换行,以表示这行不完整。(bash 会直接在那里写新提示符。)
回复

回到 “C/C++/Java”