int main(){char ch;int i=0;while(i<=8){i++;scanf("%c",&ch);}return 0;}你认为你可以输入几个char型的字符呢?可能很多人认为是9个,那错了,是5个,因为scanf函数输入char型的时候,把空格也算进去了,当按enter键的时候会提示输入下一个字符,所以每次输入一个字符算一个,然后进入下一个字符的enter也算一个,此处就是5个char字符,4个enter。运行结果如下:grow@grow-desktop:/home/growliming/datastructure/bitree$./1abcdegrow@grow-desktop:/home/growliming/datastructure/bitree$
那么我们如何来保证输入你想要的字符呢?那么就请用getchar()吧。getchar()函数是从终端输入一个字符,你如果在每个scanf后面再使用getchar()函数,当你按enter的时候,才将字符送到内存中,这样你就可以达到你自己所要输入字符的个数了,当然对整形数字没这个要求,此处仅仅是对char型的。再看程序:#include<stdlib.h>#include<stdio.h>
int main(){char ch;int i=0;while(i<=8){i++;scanf("%c",&ch);getchar();}return 0;}运行结果如下:grow@grow-desktop:/home/growliming/datastructure/bitree$./1abcdefghigrow@grow-desktop:/home/growliming/datastructure/bitree$好,达到预期结果,ok.再给下程序:#include<stdlib.h>#include<stdio.h>
int main(){char ch;int i=0;while(i<=2){i++;ch=getchar();putchar(ch);
printf("n");}return 0;}运行结果如下:grow@grow-desktop:/home/growliming/datastructure/bitree$./1aa
bb现在大家应该对这几个函数比较清楚了。
![c语言中的scanf与getchar函数 getchar与scanf](http://img.aihuau.com/images/01111101/01052032t015156bf0bab4e0987.png)