求教scanf()的一个问题.

来源:百度知道 编辑:UC知道 时间:2024/04/30 12:37:08
我写了这个简单的程序,希望每次输入两个字母,然后把输入的字母再输出,但有问题,比如说我第一次输入a c, 没有问题, 但第二次输入 e f时,'e'变成第二个接受到的字符了,第一个字符变成了空,请问是怎么回事?

#include<stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
void update_map()
{
char letter1, letter2,temp;
int position1,position2;

printf("what letter you want to change?");
scanf("%c %c",&letter1,&letter2);
printf("first-->%c second-->%c\n", letter1,letter2);
system("pause");
}
int main(int argc,char *argv[])
{
while(1){
update_map();
}
return 0;
}

第一个字符其实不是空,而是第一个字符接受到了你第一次处理后的回车键。并把他存储起来了。
记住 。回车键也就一个字符。

输入字符时 最好分开来写 不然回车也会被识别