scanf函数的应用

我们都知道scanf与printf是一对共同应用的函数,包含在头文件stdio.h下,今天我来写一下我理解的scanf函数的应用。
scanf函数是输入函数,输入的变量储存在缓存当中,等待像printf这样的函数来调用。在scanf函数中,格式字符串里面有多少个占位符,就有多少个变量。

scanf函数的输入


#define _CRT_SECURE_NO_WARNINGS
#include 

int main() 
{
    int i, j;
    float m, n;
    scanf("%d%d%f%f", &i, &j, &m, &n);
    printf("%d--%d--%f--%f",i,j,m,n);
    return 0;
}

scanf函数的应用_第1张图片
不难发现scanf的数字的输入之间需要空格。
scanf函数的应用_第2张图片
并且它会忽略首位的空格,从有效字符开始读取数据。
scanf函数的返回值
scanf函数的返回值是一个整数,表示读取到的变量的个数
读取到一个数值则返回1,零个则是0

#include 
int main()
{
	int a = 0;
	int b = 0;
	int d = 0;
	int c = scanf("%d %d %d", &a, &b,&d);
	printf("%d``%d``%d\n", a, b, d);
	printf("%d", c);
	return 0;
}

输入ctrl+z会得到零的返回值
scanf函数的应用_第3张图片
c的返回值为-1,表示出现错误
scanf函数的应用_第4张图片
取消一个d后c的返回值为2
scanf函数的占位符
跟printf函数差不多,但要注意的是,除了“%c”以外的占位符读取时都会自动跳过首位的空白字符,“%c”不忽略,但“ %c”即c前面加一个空格时就会忽略。
%s遇到空格直接break,即%s有风险,使用需谨慎。%【n】s其中【n】表示一个数字,为读取字符串的最大长度,多出的将会舍弃

赋值忽略符号*

#include 
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	scanf("%d%*c%d%*c%d", &a, &b, &c);
	return 0;
}

scanf函数的应用_第5张图片
scanf函数的应用_第6张图片
即无论中间用什么符号代替,最终输入都可以是printf函数所输出,不需要非得打空格
今天的学习分享就到这里,欢迎大家交流学习

你可能感兴趣的:(学习编程ing,c语言,学习方法,visual,studio,算法,程序人生)