scanf和printf函数

简介: scanf和printf函数

一:基本用法

printf和scanf都是库函数,使用时需引用头文件<stdio.h>


1:printf:

"f"是format(格式)的缩写,printf的作用是将参数文本输出到屏幕。如:字符串的输出



2:scanf:

用于读取用户的输入。当程序运行到这个语句时,程序会停下来,等待用户的输入,输入后程序继续执行。

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

当输入5时,程序执行如下图:


二:占位符

定义:就是这个位置可以用其他值代入。格式字符串中有几个占位符,就有几个变量。

常用的占位符有:%d(十进制整数),%c(字符型),%s(字符串型),%f(小数,包含float和double),%%(输出一个百分号)


删除线格式


使用scanfhans函数时的特殊占位符:%c,%s

1:%c不会忽略空白字符,总是返回当前的第一个字符。

无空白字符时,如下图所示:

有空白字符时,如下图所示:

如果想要强制跳过字符前的空白字符,可以在%c前加上一个空格,表示跳过0个或多个空白字符。


2:%s从当前的第一个非空白字符开始读起,直到遇到空白字符(空格,换行符,字符表等)结束。

如下图:


scanf将字符串读入字符数组时不会检测字符串是否超过了数组长度,为了防止错误发生,使用%s时指定字符串的最长长度,写成%[m]s,[m]是一个整数,表示字符串的最长长度,后面的字符被丢弃。

改正后:


三:限定宽度和小数位数

##1: 宽度的限制

从上例,%5d表示这个占位符最少长度为5,如不满5位,在结果前面加空格,也就是右对齐。“-”表示在结果后加空格,也就是左对齐,如下图所示:



2:小数位数的限制



3:部分字符串的输出

4:scanf函数具有返回值,表示成功读取的变量的个数。如果没有读取到任何项,或匹配失败,则返回0.如果在成功读取任数据之前,发生了读取错误或遇到文件结尾,则返回常量EOF.


目录
相关文章
|
6月前
|
C语言
你真的学会了printf和scanf函数吗?
你真的学会了printf和scanf函数吗?
|
6月前
|
编译器 C语言 C++
scanf函数
该文介绍了C语言中`scanf`函数用于输入变量值,而`printf`函数用于输出变量值。`scanf`在读取数值时会自动过滤空白字符,允许数据间有空格或换行,不影响解析。`scanf`返回值表示成功读取的变量数,0表示未读取或匹配失败,EOF表示读取错误或文件结尾。常见占位符包括 `%c`(字符)、`%d`(整数)、`%f`(浮点数)、`%s`(字符串)和`%[]`(指定字符集)。对于`%c`,不会忽略空白字符,但可加空格跳过前导空白。文章还提及在VS2022中,`scanf`被认为是不安全的,推荐使用`scanf_s`,并提供了如何在VS中使用`scanf`的解决方法。
115 1
|
6月前
|
C语言
1.printf()2.scanf()
1.printf()2.scanf()
33 0
有关printf(p+1),printf(p++),printf(++p)的相关理解
有关printf(p+1),printf(p++),printf(++p)的相关理解
59 0
|
11月前
c中scanf函数注意点
c中scanf函数注意点
77 0
|
C语言
printf与scanf函数的返回值
printf与scanf函数的返回值
|
存储 Serverless C语言
printf()和scanf() (详解)
printf()和scanf() (详解)
151 0
|
IDE 编译器 开发工具
VS 调用 scanf 的正确姿势
VS 调用 scanf 的正确姿势
361 0
VS 调用 scanf 的正确姿势
|
人工智能
scanf函数与getchar函数区别
scanf函数与getchar函数区别
144 0