首页 > 其他分享 >scanf和赋值忽略符用法

scanf和赋值忽略符用法

时间:2023-11-24 22:31:46浏览次数:44  
标签:读取 scanf 用户 占位 用法 输入 赋值

一.scanf基本用法

  1.scanf()函数用于读取用户的键盘输入。scanf()处理数值占位符时会自动忽略空白字符,包括空格、制表符、换行符等。所以,用户输入数据之间,有一个或多个空格不影响scanf()解读数据,另外,用户使用回车键,将输入分成几行,也不影响解读。

二.scanf的返回值

  1.scanf()的返回值是一个整数,表示成功读取变量的个数。

如果没有读取任何项,或者匹配失败,则返回0。如果在成功读取任何数据之前,发生了读取错误或者没有遇到读取到的文件结尾,则返回常量EOF。

如:

#include <stdio.h>

int main()

{int a = 0;

int b = 0;

float f = 0f

int r = scanf("%a %b %f", &a, &b, &f);

printf("%a,%b,%c", a, b, f);

printf("%d", r);

return 0;

}

输入输出测试:

1  2   3.14

a=1,b=2,f=3.140000

r = 3



输入两个数后,提前按ctrl+z,才结束输入,我们可以看到r是2,表示正确读取了2个数值。

1  2

^z

^z

a=1,b=2,f=0.000000

r=2


如果一个数字都不输入,直接按三次ctrl+z,输出的是-1也就是EOF。

^z

^z

^z

a=0,b=0,f=0.000000

r=-1

三.赋值忽略符

 1. 有时用户的输入可能不符合预定的格式。

如:

scanf("%d-%d-%d", &year, &month, &day);

用户输入2023-1-1,就会正确的解读年、月、日。但用户可能输入其他格式,如2023/1/1,这种情况下scanf()解读就会失败。

于是,scanf()函数提供了一个赋值忽略符“*”。

只要把*加在任何占位符的百分号后面,该占位符就不会返回值,解析后将被丢弃。

如:

scanf("%d%*c%d%*c%d", &year, &month, &day);

上述示例中,%c加入了赋值忽略符,表示这个占位没有对应的变量,解读后不必返回。


标签:读取,scanf,用户,占位,用法,输入,赋值
From: https://blog.51cto.com/u_16364311/8551924

相关文章

  • 系统梳理一下 thymeleaf 的用法
    Thymeleaf是一个用于服务器端Java应用的模板引擎,它能够在HTML/XML模板中嵌入动态内容,提供了丰富的功能来简化模板和数据之间的集成。下面是Thymeleaf的一些主要用法:表达式语法Thymeleaf使用类似于自然语言的表达式语法,可以在HTML中嵌入动态内容:变量表达式<spanth:t......
  • c语言中的指针用法
    1、指向函数的指针在C语言中,函数名实际上是一个指向函数的指针,所以你可以直接使用函数名add来初始化函数指针,而不需要使用&add。在这种情况下,add和&add是等价的。这是因为在C语言中,函数名是函数的入口地址的别名。当你使用函数名时,你实际上获取的是函数的入口地址。这就是为什么......
  • 镜像搬运工 skopeo简单用法
    https://blog.51cto.com/u_16099262/6928212https://blog.csdn.net/easylife206/article/details/125093122https://github.com/containers/skopeo1安装dnf-yinstallskopeo本地搭建私有仓库#安装dockerdnfinstalldocker#下载并启动一个register容器,创建本地私有......
  • Android新手必学:Fragment的用法
    引言Fragment是Android开发中一个重要的组件,它可以被认为是一个模块化的UI组件,用于构建灵活和可重用的界面。在Android应用程序中使用Fragment可以实现更好的UI组织、模块化开发和适配多屏幕等需求。本文将介绍Fragment的基本概念和用法,帮助Android新手开发者快速上手使用Fragment......
  • 这么多年关于SQL关键字你不知道的那些用法........
    简单聊聊,常用的sql关键字还可以这样用…来访者,你好,请叫我标题党!!!---------------------------------------------------------------------------------------------------------------.对于很多时候代码写的好与坏主要取决于sql语句6不6,话不多说上代码主要是讲解查询sql增加啊,......
  • SQL LIKE 运算符:用法、示例和通配符解释
    SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:百分号%代表零个、一个或多个字符。下划线_代表一个单个字符。以下是LIKE运算符的用法和示例:示例选择所有以字母"a"开头的客户:SELECT*FROMCustomersWHERECustome......
  • SQL LIKE 运算符:用法、示例和通配符解释
    SQL中的LIKE运算符用于在WHERE子句中搜索列中的指定模式。通常与LIKE运算符一起使用的有两个通配符:百分号%代表零个、一个或多个字符。下划线_代表一个单个字符。以下是LIKE运算符的用法和示例:示例选择所有以字母"a"开头的客户:SELECT*FROMCustomersWHERECustom......
  • torch用法--张量操作
    创建张量:torch.tensor(data):从数据中创建张量。用列表创建,numpy创建维度只看[]#一维张量data_1d=[1,2,3]tensor_1d=torch.tensor(data_1d)#结果tensor([1,2,3])#二维张量data_2d=[[1,2,3],[4,5,6],[4,5,6]]tensor_2d=torch.tensor(dat......
  • Fortran 中write函数用法详解及格式化输出简介
    目录write函数用法详解及格式化输出简介write的最基础用法print格式化输出常用格式控制符详解Iw.[m]Fw.dEw.d[Ee]Dw.dAwnXLw字符串/不常用格式控制符详解Gw.d[Ee]TcTLnTRnSP,SSBN,BZkPBw[.m]Ow[.m]Zw[.m]使用print进行格式化输出附录format命令格式控制符号表参考write函数......
  • java日期时间类运算Date,Calendar,LocalDateTime(详细用法)
    ✨前言✨本片文章,主要在于使用Date,Calendar,LocalDateTime三种时间类,进行日期之间的运算,及使用......