大神能不能帮帮解释下getchar函数 ,就这个题
#include<stdio.h>int main()
{
char cl, c2, c3, c4, c5, c6;
scanf("%c%c%c%c", &cl, &c2, &c3, &c4);
c5 = getchar();
c6 = getchar();
putchar(cl);
putchar(c2);
printf("%c%c\n", c5, c6);
return 0;
} 输入时
c1,c2,c3,c4分别被赋值abc\n
c5,c6获得de
剩下的fg\n没有储存?
然后puchar输出了ab
printf输出了de
我也是新手,个人见解哈 scanf()和getchar()在此问题中都是同一个作用----读取输入字符(英文状态下键盘按下就算一个,无论是否看得到)。
按照scanf()里面的格式控制"%c%c%c%c" 即认为要从缓冲区读取连续的个字符,
后续的getchar()则是读取缓冲区首个字符;
按照输入不难看出缓冲区里面的字符: 'a' 'b' 'c' '\n' 'd' 'e' 'f' 'g' '\n';
先读取4个分别赋值给c1 c2 c3 c4, 此时缓冲区还剩 'd' 'e' 'f' 'g' '\n',再读取两个赋值给c5 c6,最终缓冲区还有'f' 'g' '\n';
页:
[1]