对于以下代码:
char x[100]; char y;
scanf("%s%c", &x, &y);
printf("%s%d", x, y);
input: abcd(按回车)
output: abcd10
为什么 会输出一个10?
回车 \r 0x0d 13,回到行首
换行 \n 0x0a 10,下一行
在 windows 中每行尾是 <回车><换行> 两个字符
2 个字符有些浪费
在 unix /linux 中每行尾就只用 <换行>
在 MAC 苹果 中每行尾就只用 <回车>
在 windows 系统中一些读键盘的函数也会将<回车>转换成 <回车><换行>
你的输出10就是这个原因
因为%c接收的是换行符啊,它的ASCII码是10