scanf函数的应用

发布时间:2024年01月21日

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

scanf函数的输入


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

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的数字的输入之间需要空格。
在这里插入图片描述
并且它会忽略首位的空格,从有效字符开始读取数据。
scanf函数的返回值
scanf函数的返回值是一个整数,表示读取到的变量的个数
读取到一个数值则返回1,零个则是0

#include <stdio.h>
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会得到零的返回值
在这里插入图片描述
c的返回值为-1,表示出现错误
在这里插入图片描述
取消一个d后c的返回值为2
scanf函数的占位符
跟printf函数差不多,但要注意的是,除了“%c”以外的占位符读取时都会自动跳过首位的空白字符,“%c”不忽略,但“ %c”即c前面加一个空格时就会忽略。
%s遇到空格直接break,即%s有风险,使用需谨慎。%【n】s其中【n】表示一个数字,为读取字符串的最大长度,多出的将会舍弃

赋值忽略符号*

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

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

文章来源:https://blog.csdn.net/s_little_monster/article/details/135720949
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。