C语言数据输入与输出:格式化函数详解
需积分: 10 162 浏览量
更新于2024-08-16
收藏 328KB PPT 举报
"这篇文档是关于C语言中的格式输入与输出函数的教程,重点介绍了`scanf`和`printf`函数的使用方法。"
在C语言中,数据的输入与输出是通过函数来实现的,而不是像其他一些高级语言那样有专门的I/O语句。在输入输出操作中,`scanf`和`printf`是非常重要的两个函数,它们分别用于从标准输入(通常是键盘)读取数据和向标准输出(通常是显示器)打印数据。
## 1. 格式输入函数 - `scanf`
`scanf`函数的基本格式如下:
```c
scanf(“格式控制串”,地址表)
```
这个函数的功能是按照指定的格式控制串从键盘读取数据,并将其存储到地址表所指向的变量中。例如:
```c
scanf("%d", &a);
```
这行代码会等待用户输入一个整数,然后将其存入变量`a`中。输入完成后,用户通常需要按回车键结束输入。
`scanf`函数支持以下格式字符:
- `%d`: 读取十进制整数
- `%i`: 同 `%d`
- `%o`: 读取八进制整数
- `%x`: 读取十六进制整数
- `%u`: 读取无符号整数
- `%c`: 读取单个字符
- `%s`: 读取字符串
- `%f`: 读取浮点数
- `%e`, `%E`: 读取指数形式的浮点数
- `%g`, `%G`: 读取科学记数法或小数形式的浮点数
- `%%`: 读取并输出一个百分号
## 2. 字符输出函数 - `putchar`
`putchar`函数用于将单个字符输出到显示器。其基本格式如下:
```c
putchar(c)
```
其中`c`可以是字符常量、变量或表达式。例如:
```c
putchar('A');
```
这行代码会输出大写字母"A"。
## 3. 格式输出函数 - `printf`
`printf`函数是C语言中进行格式化输出的主要函数,其基本格式如下:
```c
printf(“格式控制串”,输出表)
```
它能按照指定的格式控制串输出数据,支持多种格式字符,与`scanf`类似。例如:
```c
printf("%d", a);
```
这行代码会将变量`a`的值以十进制整数的形式输出。
`printf`函数的格式控制串包括两种信息:
1. 格式说明:以`%`开头,后面可跟一些修饰符和格式字符,用来指定输出格式。
2. 普通字符或转义序列:这些字符会被原样输出。
## 4. 示例
下面是一些使用`printf`的示例,展示了不同格式字符的使用:
```c
int a = 567;
printf("%d", a); // 输出:567
int b = 255;
printf("%x", b); // 输出:ff
int c = 65;
printf("%o", c); // 输出:101
unsigned int d = 567;
printf("%u", d); // 输出:567
char e = 65;
printf("%c", e); // 输出:A
printf("%s", "ABC"); // 输出:ABC
float f = 567.789;
printf("%e", f); // 输出:5.677890e+02
printf("%f", f); // 输出:567.789000
printf("%g", f); // 输出:567.789
printf("%%"); // 输出:%
```
注意,`printf`函数的格式字符必须是小写,并且格式字符与输出项的个数和顺序应当对应。如果输出项类型与指定的格式不符,C语言会尝试自动转换以符合指定的格式。
举例来说,以下代码可能会导致意外的结果:
```c
unsigned int u = 65535;
printf("u=%d\n", u); // 输出:u=-1
```
因为`%d`用于输出带符号的整数,而`u`是一个无符号整数,当无符号整数超过有符号整数的表示范围时,输出可能会变为负数。
此外,`printf`函数会返回输出的字节数,如果发生错误则返回EOF(-1)。这一点在进行错误检查时可能会用到。
总结,理解和熟练使用`scanf`和`printf`函数是掌握C语言输入输出的关键,它们为程序提供了一种灵活的方式来处理数据的输入和输出。在实际编程中,应根据需求选择合适的格式字符和修饰符,以确保数据正确地被读取和显示。
1149 浏览量
161 浏览量
2009-07-10 上传
140 浏览量
2022-11-13 上传
2022-11-14 上传
2024-06-24 上传
146 浏览量
点击了解资源详情

无不散席
- 粉丝: 33
最新资源
- 谷歌风格的网页设计:Armands Liepa的创意
- 绿色便携版MySQL 5.0数据库安装分享
- 探索基本压缩算法函数库及其应用
- 法律仲裁案件分析与展望PPT模板深度解析
- 免费版Navicat for MySQL老版本下载指南
- Outlook联系人转vCard格式详细教程
- 白厅API:alexpreiss.com的JavaScript服务器接口解析
- ASP.NET构建的在线考试系统开发实践
- VC中实现等待程序结束的两种方法
- typed-path:提取TypeScript类型信息的实用工具
- 掌握Visual C++ MFC编程的四大基础
- 邻居吃:疫情时期本地餐厅推荐系统的设计与应用
- MacOS平台Android SDK R16版本发布
- SwitchViewDemo: 探究与实践的一个示例
- SQLFormatter:美化你的SQL语句日志
- 掌握Lucene搜索引擎技术,入门文本内容检索