简简单单的输入两个字符的问题
#include<stdio.h>void main()
{
char c1,c2;
c1=getchar();
printf("\n");
c2=getchar();
putchar(c1);
printf("\n");
putchar(c2);
//printf("%d,%d\n",c1,c2);
//printf("%c,%c",c1,c2);
}
代码如下,可是每次只是能处理一个字符,第二字符就是无法输入。。。。
why???
本帖最后由 elvo 于 2014-5-22 17:01 编辑
你输入字符后是要敲回车的。。在输入缓冲区里就保存了回车符的,把程序修改一下如下:#include<stdio.h>
int main()
{
char c1,c2;
do{
c1=getchar();
}while(c1 == '\n'); //读取如果是‘\n’则继续读取。
// printf("\n");
do{
c2=getchar();
}while(c2 == '\n'); //同上
putchar(c1);
printf("\n");
putchar(c2);
//printf("%d,%d\n",c1,c2);
//printf("%c,%c",c1,c2);
return 0;
}
#include<stdio.h>
void main()
{
char c1,c2;
c1=getchar();
getchar();
printf("\n");
c2=getchar();
putchar(c1);
printf("\n");
putchar(c2);
printf("\n");
}
使用getchar()时回车键也是一个字符,不在c1赋值语句后加一个getchar()接收回车键,计算机就会把回车赋给c2,也就会出现你说的情况 很好,越学越厉害
页:
[1]