c语言学习笔记之scanf函数

scanf函数是监听键盘输入内容并赋值给变量的函数,但是在初次使用该函数的时候
我定义了两个变量 如:
cha A;
cha B;
scanf("%c",&A);
scanf("%c",&B);
printf("输出A:%c,B:%c",A,B);

的时候却出现了A被赋值但是B没有被赋值成功的情况。

原来scanf函数是先监听到enter键后把输入的内容取出来放到一个缓存空间中,然后在根据定义的变量类型,从缓存空间中查找对应的值替换到相应的内存地址中,在此过程中连续的两个scanf函数会被相应执行,如我输入W然后再摁enter键,此时W会被先储存到缓存空间中,然后根据A的类型去取,当执行到scanf("%c",&B);的时候会先从缓存空间中去查找,此时,空间中已经没有值了,所以B就没有被赋值成功。

如果想要成功赋值的话,我们可以这样写:

char A;
char B;
scanf("%c,%c",&A,&B);
printf("输出的A:%c,B:%c",A,B);

在输入过程中请务必注意 ”,“此字符相当于结束字符,就是当A从缓存空间去查找对应的字符的时候,遇到","就会停止,然后取出当前查找到的对象储存到A对应的内存空间。

你可能感兴趣的:(c语言学习笔记之scanf函数)