C语⾔数据类型和变量-2

简介: C语⾔数据类型和变量

输出⼩数时,有时希望限定⼩数的位数。举例来说,希望⼩数点后⾯只保留两位,占位符可以写 成 %.2f 。


这种写法可以与限定宽度一起使用

上⾯⽰例中, %*.*f 的两个星号通过 printf() 的两个参数 6 和 2 传⼊。


9.2 scanf


当我们有了变量,我们需要给变量输⼊值就可以使⽤ scanf 函数,如果需要将变量的值输出在屏幕上 的时候可以使⽤ prinf 函数,下⾯看⼀个例⼦:


scanf() 处理数值占位符时,会⾃动过滤空⽩字符,包括空格、制表符、换⾏符等。


每次按下回⻋键以后,


scanf() 就会开始解读,如果第⼀⾏匹配第⼀个占位符,那么下次按下回⻋键时,就会从第⼆个占 位符开始解读。


scanf() 处理⽤⼾输⼊的原理是,⽤⼾的输⼊先放⼊缓存,等到按下回⻋键后,按照占位符对缓存 进⾏解读。


解读⽤⼾输⼊时,会从上⼀次解读遗留的第⼀个字符开始,直到读完缓存,或者遇到第⼀个不符合条件的字符为⽌。


9.2.2 scanf的返回值


scanf() 的返回值是⼀个整数,表⽰成功读取的变量个数。

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


%c 不忽略空⽩字符,总是返 回当前第⼀个字符,⽆论该字符是否为空格。


如果要强制跳过字符前的空⽩字符,可以写成 scanf(" %c", &ch) ,即 %c 前加上⼀个空格,表 ⽰跳过零个或多个空⽩字符


下⾯要特别说⼀下占位符 %s ,它其实不能简单地等同于字符串。它的规则是,从当前第⼀个⾮空⽩ 字符开始读起,直到遇到空⽩字符(即空格、换⾏符、制表符等)为⽌


因为 %s 不会包含空⽩字符,所以⽆法⽤来读取多个单词


9.2.4 赋值忽略符

scanf() 提供了⼀个赋值忽略符(assignment suppression character) * 。


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


上⾯⽰例中, %*c 就是在占位符的百分号后⾯,加⼊了赋值忽略符 * ,表⽰这个占位符没有对应的 变量,解读后不必返回。


使用scanf函数时,如何消除警告:

相关文章
|
6月前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(下)
02 Java基础语法(变量+数据类型+运算符)
41 5
|
6月前
C语关系和逻辑操作符
C语关系和逻辑操作符
75 5
|
7月前
|
语音技术 Python
语音识别,python字面量,注释,变量,python变量的格式是变量名 = 变量值,加减乘除的输入方式
语音识别,python字面量,注释,变量,python变量的格式是变量名 = 变量值,加减乘除的输入方式
|
8月前
|
存储 C# 开发者
C# 编程基础:注释、变量、常量、数据类型和自定义类型
C# 编程基础:注释、变量、常量、数据类型和自定义类型
|
7月前
|
语音技术 数据安全/隐私保护 Python
语音识别---数据输入(input语句),布尔类型和比较运算符,if语句的基本格式,Python通过空格缩进来判断代码块的归属关系,我要买票吗讲解?if_elif_else
语音识别---数据输入(input语句),布尔类型和比较运算符,if语句的基本格式,Python通过空格缩进来判断代码块的归属关系,我要买票吗讲解?if_elif_else
|
9月前
|
存储 缓存 编译器
C语言——C语⾔数据类型和变量
C语言——C语⾔数据类型和变量
|
9月前
|
存储 编译器 C++
C++语言的变量和数据类型
C++语言的变量和数据类型
|
9月前
|
存储 程序员 编译器
C++注释、变量、常量、关键字、标识符、输入输出
C++注释、变量、常量、关键字、标识符、输入输出
|
9月前
火山中文编程 -- 变量与常量
火山中文编程 -- 变量与常量
83 0
|
9月前
|
存储 C++
第一章:C++中的注释、变量和数据类型、运算符
第一章:C++中的注释、变量和数据类型、运算符
57 0