我想知道,为什么我的打印结尾总会有10个。
我正在尝试输入带空格的字符串,然后打印出所有字符。
输入:hello
输出:104 101 108 108 111 10
应输出:104 101 108 108 111
unsigned char input[256];
fgets(input,sizeof(input),stdin);
for(int i = 0; input[i] != '\0'; i++) {
printf("%u ",input[i]);
}
答案 0 :(得分:8)
答案 1 :(得分:1)
ASCII码10是换行符(\ n):
http://www.theasciicode.com.ar/ascii-control-characters/line-feed-ascii-code-10.html
也许你正在从文件中读取字符串?
答案 2 :(得分:1)
您正在打印换行符。
打印出来时,这表示为数字10
(ASCII)。
答案 3 :(得分:1)
10是新行的ASCII码(\ n)
答案 4 :(得分:1)
行'\n'
的结尾在ASCII中包含代码10。
请注意打印出6个数字。打赌你输入6个键:
H E L L O 输入
所以输入不是“你好”,而是'h'
,'e'
,'l'
,'l'
,'o'
,'\n'
。< / p>
fgets()
阅读这些内容并将其保存在input[]
中。它还附加了'\0'
,因此保存了7 char
。