我想知道,为什么在我的打印结束时总是有10个。打印char数组后,为什么会出现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]);
}
嗯,当你键入...时,注意你的手指是他们碰到'o'还是别的什么的最后一个键? – 2014-09-23 19:23:57
答案提到10是为ENTER键传递的字符的编码是正确的,除了它们引用ASCII。我们不知道你的控制台正在使用什么字符集和编码,但它可能不是ASCII。按照设计,许多字符集是ASCII的超集,其大部分编码与公共子集的ASCII相同。通过Linux中的'locale'和Windows中的'chcp'找出你真正使用的是什么。并且,请记住,您的程序的使用可能会使用不同的东西。 – 2014-09-23 23:47:50