C语言scanf跳出循环的问题

注意:%C前面有个空格,如果不加空格,会跳出while循环。

第一次输入的时候,回车键会滞留在输入缓冲区,第二次要去输的时候,会直接去读回车键

在第二次要去输入的时候,可以先清除缓冲区,用getchar(),或者用fflush(stdin)

printf("Y or N?");

scanf("%c",&a);

getchar();//或者fflush(stdin);

printf("Y or N?);

scanf("%c",&b);

时间: 2024-10-15 23:44:00

C语言scanf跳出循环的问题的相关文章

C语言scanf函数详细解释(转)

函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.可以读入任何固有类型的数据并自动把数值变换成适当的机内格式. 其调用格式为:      scanf("<格式化字符串>",<地址表>); scanf()函数返回成功赋值的数据项数,出错时则返回EOF. 其控制串由三类字符构成: 1.格式化说明

C语言scanf与get char,gets的区别

C语言scanf与get char,gets的区别 1.scanf() scanf是C语言的格式输入函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.可以读入任何固有类型的数据并自动把数值变换成适当的机内格式. 在这里我想 列下一个'格式化说明符'的表来自于下面这个链接 (https://blog.csdn.net/21aspnet/article/details/174326) (A)                格式化说明符 格式字符           说明 %a 

c语言scanf详解

函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]);scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.可以读入任何固有类型的数据并自动把数值变换成适当的机内格式.其调用格式为:      scanf("<格式化字符串>",<地址表>);scanf()函数返回成功赋值的数据项数,出错时则返回EOF.其控制串由三类字符构成:1.格式化说明符: 2.

C语言Scanf函数

C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内 存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房 号,根据房号可以找到房间(根据地址也可以找到内存中的字节).相邻房间的房号是连续的,相邻字节的地址也是连续的.计算机中通常以十六进制表示地址. ②. 不同类型占用的字节是不一样的,数据越大则占用的字节数越多.如在64位编译器下,int类型占据4个字节,char类型占

05-C语言scanf函数

一. 变量的内存分析 1. 字节和地址 为了更好地理解变量在内存中的存储细节,先来认识一下内存中的"字节"和"地址". 1> 内存以"字节为单位" 0x表示的是十六进制,不用过于纠结,能看懂这些数字之间谁大谁小就行了 2> 不同类型占用的字节是不一样的,数据越大,所需的字节数就越多 2. 变量的存储 1> 所占用字节数跟类型有关,也跟编译器环境有关 2> 变量实例 int b = 10; int a = 20; l 内存由

C语言scanf输入格式 printf输出格式

对于刚接触C语言的同学来说 可能会遇到这个问题 因为博主也是个菜鸟经常因为搞不清楚单精度双精度还有输入输出格式的问题 就这个问题也百度的很多次 所以在这里总结一下分享给大家 printf输出格式 1.转换说明符       %a(%A)     浮点数.十六进制数字和p-(P-)记数法(C99)       %c             字符       %d             有符号十进制整数       %f              浮点数(包括float和doulbe)      

C语言scanf函数详解

函数名: scanf 功 能: 运行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.能够读入不论什么固有类型的数据并自己主动把数值变换成适当的机内格式. 其调用格式为:      scanf("<格式化字符串>",<地址表>); scanf()函数返回成功赋值的数据项数,出错时则返回EOF. 其控制串由三类字符构成: 1.格

C语言 Scanf函数

C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间就相当于是每个字节,地址就是房号,根据房号可以找到房间(根据地址也可以找到内存中的字节).相邻房间的房号是连续的,相邻字节的地址也是连续的.计算机中通常以十六进制表示地址. ②. 不同类型占用的字节是不一样的,数据越大则占用的字节数越多.如在64位编译器下,int类型占据4个字节,char类型占据1

C语言scanf函数详细解释

函数名: scanf 功 能: 执行格式化输入 用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息.可以读入任何固有类型的数据并自动把数值变换成适当的机内格式. 其调用格式为:      scanf("<格式化字符串>",<地址表>); scanf()函数返回成功赋值的数据项数,出错时则返回EOF. 其控制串由三类字符构成: 1.格式化说明