博客
关于我
C语言 FileStreaming 键盘与屏幕IO
阅读量:797 次
发布时间:2023-04-03

本文共 2019 字,大约阅读时间需要 6 分钟。

scanf函数

扫描输入函数`scanf()`用于从标准输入读取数据,常用于从键盘读取用户输入。它的工作原理与`printf()`相反,`scanf()`会从标准输入中读取数据并存储到指定的变量中。
`scanf()`函数的基本语法格式如下: ``` int scanf(const char *format, FILE *stream, ...) ``` 其中,`format`是格式控制字符串,`stream`是输入流,通常使用`stdin`(标准输入流)。
1. **格式控制字符串**:`scanf()`的第一个参数是格式控制字符串,用于指定数据的类型和读取方式。常见的格式字符包括: - `%d`:读取整数,忽略空白字符(空格、换行符等)。 - `%c`:读取单个字符,包括空白字符。 - `%s`:读取字符串,会读取到空白字符或终止符。 2. **输入流参数**:`scanf()`的第二个参数是输入流,通常使用`stdin`。
- **读取数据**:`scanf()`从输入流读取数据到缓冲区,然后根据格式控制字符串进行处理。 - **空白字符处理**:在读取数字时(如`%d`),`scanf()`会跳过空白字符(如空格、换行符、制表符)直到找到有效数字为止。 - **字符处理**:在读取字符时(如`%c`),空白字符也会被读取并存储到目标变量中。
- 对于`%d`,如果输入中包含非数字字符(如字母),`scanf()`会跳过这些字符,直到找到有效数字为止。如果没有找到有效数字,则函数返回`EOF`(End Of File)。 - 对于`%c`,所有读取到的字符都会被存储到目标变量中,无论是空格还是回车键。
- 当使用`%s`格式时,`scanf()`会读取到空白字符或终止符(如`\n`),然后停止读取。因此,在读取字符串时需要特别注意。
以下示例展示了如何使用`scanf()`读取输入: ```c int i; scanf("%d", &i); printf("i = %d\n", i); system("pause"); ``` 该程序会从标准输入读取一个整数`i`,然后将其打印出来。

printf函数

`printf()`函数用于向标准输出输出数据,是与`scanf()`相反的函数。它允许程序员格式化输出数据,提供更大的控制能力。
`printf()`的语法格式如下: ``` int printf(const char *format, ...) ``` 其中,`format`是格式控制字符串,包含输出的格式说明符和输出顺序。
常见的格式说明符包括: - `%d`:输出整数。 - `%c`:输出字符。 - `%s`:输出字符串。 - `%f`:输出浮点数。 - `%g`:输出一般实数(可以选择输出浮点数或整数,取决于小数点后的位数)。 - `%x`:输出十六进制数。 - `%X`:输出十六进制数,并使用大写字母。 - `%o`:输出八进制数。 - `%b`:输出二进制数。 - `%n`:输出字节数。
- **输出顺序**:`printf()`函数按照格式控制字符串中指定的顺序输出变量的值。 - **格式化选项**:可以通过格式字符串中的各种格式化选项来控制输出的格式,例如: - `*`:左对齐。 - `>`:右对齐。 - `^`:居中对齐。 - `#`:在整数前面加上符号(如`#`)。 - `0`:左边补零。 - `-`:左边补空格(仅适用于整数)。
以下示例展示了如何使用`printf()`输出数据: ```c printf("Hello, World!\n"); printf("Number: %d\n", i); printf("Float number: %.2f\n", 3.141592653589793); ``` 该程序会输出以下内容: ``` Hello, World! Number: 5 Float number: 3.14 ```

转载地址:http://zzrfk.baihongyu.com/

你可能感兴趣的文章
oracle账号共享
查看>>
Oracle闪回技术(Flashback)
查看>>
oracle零碎要点---ip地址问题,服务问题,系统默认密码问题
查看>>
oracle零碎要点---oracle em的web访问地址忘了
查看>>
Oracle零碎要点---多表联合查询,收集数据库基本资料
查看>>
Oracle静默安装
查看>>
【Bert101】变压器模型背后的复杂数学【02/4】
查看>>
Oracle面试题:Oracle中truncate和delete的区别
查看>>
ThreadLocal线程内部存储类
查看>>
thinkphp 常用SQL执行语句总结
查看>>
Oracle:ORA-00911: 无效字符
查看>>
Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
查看>>
Tensorflow.python.framework.errors_impl.ResourceExhaustedError:无法分配内存[操作:AddV2]
查看>>
TCP基本入门-简单认识一下什么是TCP
查看>>
tableviewcell 中使用autolayout自适应高度
查看>>
Symbolic Aggregate approXimation(SAX,符号聚合近似)介绍-ChatGPT4o作答
查看>>
Orcale表被锁
查看>>
svn访问报错500
查看>>
sum(a.YYSR) over (partition by a.hy_dm) 不需要像group by那样需要分组函数。方便。
查看>>
ORCHARD 是什么?
查看>>