scanf

浅浅尝试下全新的领域(

1.scanf用法

1.1成绩free

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int score = 10;
	printf("请输入成绩:");
	scanf("%d", &score);//%后不加 \n
	printf("成绩是:%d\n", score);
	return 0;
}

第一行是防vs_2022报错的,学是从B站比特学的

1.2xyzw一次性全打进

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int x = 0;
	int y = 0;
	float z = 0.0;//少 . 会报错
	float w = 0.0;
	printf("输入4个数,前2整,后2浮点\n");
	scanf("%d%d%f%f", &x, &y, &z, &w);
	printf("%d %d %f %e\n", x, y, z, w);
	//printf输出 %d%d%f%e之间有空格
	//%e科学计数法,-3e9是-3乘10的9次方
	return 0;
}

1.3scanf原理

1>scanf处理占位符时,会自动过滤空白字符(空格,换行符等)

处理用户原理:用户的输入放入缓存,按下回车键后,按占位符对缓存进行解读。

解读用户输入时,从上一次解读遗留的第一个字符开始,直到读完缓存,

或者遇到第一个不符合条件的字符为止

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int x;
	float y;
	printf("尝试输入   -13.45e12# 0,看看输出的是什么吧\n");
	int r = scanf("%d%f", &x,&y);
	//读第一个占位符(整型)scanf跳过了空格,从“-”开始,读到“.”结束
	//读第二个占位符(整型)从“.”开始,读到“#”结束
	printf("%d %e\n", x,y);
	//最后输出为-13  4.500000e+11
	// //0.45*10‸12 = 4.5*10‸11
	printf("scanf返回值是%d", r);
    //scanf读取了2个变量(x,y),返回值是2
	//在输入时按一次Ctrl+Z来跳过一个占位符(输出1),按2次输出-1
	return 0;
}

2>scanf的返回值是一个整数,表示成功读取变量的个数

如果没有读取任何项,或者匹配失败,则返回0

如果读取到文件结尾,则返回常量EOF(-1)

2.占位符

%d整数    %s字符串    %c字符

%f float类型浮点数    %lf double类型浮点数    %Lf    long double类型浮点数

%[]   在[]中指定一组匹配的字符(如%[0-9]),遇到不在集合中的字符时,匹配停止

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	char  name[11];//数组本身就是地址
	scanf(" %10s",name);//%[]s限定scanf输入字符串最长长度
	printf("%s\n", name);
	return 0;
}

以上占位符除%c都会自动忽略起首的空白字符

空格%c 强制跳过字符前空白字符 如scanf(" %c,&ch")

3.赋值忽略符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int year = 0;
	int month = 0;
	int day = 0;
	//1999-9-9
	scanf("%d%*c%d%*c%d%", &year, &month, &day);
	//赋值忽略符号* 把*加在任何占位符的%后,该占位符就不会返回值,解析后将被丢弃
	printf("%d %d %d\n", year, month, day);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值