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函数时,如何消除警告:

相关文章
|
21天前
|
存储 Java 数据库
第二章 变量、数据类型和运算符
第二章 变量、数据类型和运算符
14 0
|
21天前
|
程序员 编译器 C语言
C语言的数据类型和变量
C语言的数据类型和变量
|
9天前
|
存储 缓存 编译器
C语言——C语⾔数据类型和变量
C语言——C语⾔数据类型和变量
13 0
|
15天前
|
存储 C语言
【C语言】数据:数据类型关键字
【C语言】数据:数据类型关键字
|
21天前
|
Java
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
深入浅出Java基础语法:标识符、关键字、变量、数据类型、运算符与控制语句
13 0
|
7月前
|
存储 编译器 Serverless
C语言的内置数据类型以及变量和常量
C语言的内置数据类型以及变量和常量
62 0
|
21天前
|
存储 编译器 C++
C++语言的变量和数据类型
C++语言的变量和数据类型
|
21天前
|
存储 编译器 C语言
【C语言】数据类型和变量
【C语言】数据类型和变量
【C语言】数据类型和变量
|
21天前
|
存储 C++
第一章:C++中的注释、变量和数据类型、运算符
第一章:C++中的注释、变量和数据类型、运算符
27 0
|
7月前
C语⾔数据类型和变量-1
C语⾔数据类型和变量

热门文章

最新文章