scanf包含在<stdio.h>
几乎每个程序都包含了输入输出,而在C语言函数库中有一批标准输入输出函数,它是以标准的输入输出设备(终端设备)为输入输出为输入输出的对象,而scanf(格式输入)和printf(格式输出)是其中的一组输入输出函数,两者都在头文件<stdio.h>中,注意在使用这组函数时应该在源程序的首行写预处理命令。
#include <stdio.h> //预处理命令scanf函数标准输入设备
一般格式为:scanf(格式控制符,地址列表),地址列表必须要用引用地址符”&“,注意在使用变量前都要先定义再使用,例如下:
int a;
scanf("%d",&a); //&a是变量地址,不是变量名
scanf("%d",a); //这是错误的!格式控制符说明:一般常用的使%d,%c,%f,%lf,%s等,具体含义见下表
%d | 输入有符号的十进制数,一般int类型数据输入使用 |
%c | 输入单个字符,一般char字符类型数据使用 |
%f | 输入实数,可以用小数形式或者指数形式输入,一般是单精度float类型数据使用 |
%lf | 输入实数,一般是双精度double类型数据使用 |
%s | 输入字符串,将字符串送到一个字符数组中,在输入时一非空白字符开始,以第一个空白字符结束。字符串以串结束标志’\0‘作为其最后一个字符 |
域宽 | 指定输入数据所占宽度(列数),域宽应为正整数 |
scanf在输入数据时可以设置域宽,与printf不同的一点是:printf("%6.2f",m)这是正确的,而scanf("%6.2f",&m)这是错误的,不能有小数的存在,正确格式应该是scanf("%6f",&m)。
scanf输入格式注意事项,在输入数据时在对应位置上要输入与这些字符相同的字符
%d的格式声明输入数据时,空格和回车都可以当作分隔符号使用。
#include <stdio.h>
main()
{
int num1,num2;
scanf("%d%d",&num1,&num2); //使用空格或者回车将两个数据分开
scanf("%d,%d",&num1,&num2); //只能使用英文的逗号将两个数据分开
} scanf("%d%d",&num1,&num2)输入数据时,格式可以是 10<空格>20,或者是10<回车>20
scanf("%d,%d",&num1,&num2)输入数据时,格式只能是10,20
%c的格式声明输入字符时,空格字符和”转义字符“中的字符都作为有效字符输入,例如:
#include <stdio.h>
main()
{
char a,b;
scanf("%c%c",&a,&b); //应该连续输入两个字符,中间不能有空格或者有其他符号就不对了
scanf("%c,%c",&a,&b); //这里应该用英文逗号将两个字符分隔开,且字母前后不能有空格
}scanf("%c%c",&a,&b)输入数据时,应该是连续的两个字符,格式应该时:mn
scanf("%c,%c",&a,&b)输入数据时,格式为:m,n 其他格式都是不对的
%c%d的格式两者混合输入数值时,要注意
#include <stdio.h>
main()
{
int num1,num2;
char a,b;
scanf("%d%c%d%c",&num1,&a,&num2,&b);//在终端输入 10m20n ,系统会自动区分数值和字符
} scanf("%d%c%d%c",&num1,&a,&num2,&b)输入数据时,格式可以是 10m<回车>20n ,或者格式是为 10m<空格>20n , 其他格式都是错误的,注意字符前不能有空格。
总之的来说 ,输入数值时,在两个数值之间需要插入空格(或者其他的分隔符号),以使系统能区分两个值。在连续输入字符时,在两个字符之间就不要插入空格或者其他分隔符啦(除非在scanf函数中的格式字符串中有普通字符,这时在输入数据时要在原来位置插入这些字符),系统能区分两个字符
C语言中的scanf函数用于标准输入,通常包含在<stdio.h>头文件中。函数格式为scanf(格式控制符, 地址列表),其中地址列表需用引用地址符。常用的格式控制符包括%d, %c, %f等。输入数据时,空格和回车可以作为分隔符,但设置域宽时,scanf不接受小数点,如"%6.2f"应改为"%6f"。对于%c,空格和特殊字符也被视为有效输入。在输入多个数值或字符时,需要注意分隔符号的使用,以确保正确读取数据。"
77916862,4937003,操作系统内存管理:kmalloc/kfree 实现与优化,"['操作系统', '内存管理']
1万+

被折叠的 条评论
为什么被折叠?



