qtyj123 发表于 2014-5-22 16:26:03

简简单单的输入两个字符的问题

#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:00:03

本帖最后由 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;
}

queren 发表于 2014-5-22 17:01:10

#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,也就会出现你说的情况

儁破孩@123 发表于 2014-5-22 18:02:41

很好,越学越厉害
页: [1]
查看完整版本: 简简单单的输入两个字符的问题