C语言数据输入与输出:格式化函数详解
需积分: 10 53 浏览量
更新于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语言输入输出的关键,它们为程序提供了一种灵活的方式来处理数据的输入和输出。在实际编程中,应根据需求选择合适的格式字符和修饰符,以确保数据正确地被读取和显示。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2011-07-28 上传
2009-07-10 上传
2022-07-11 上传
2022-06-02 上传
2022-11-13 上传
2022-11-14 上传
无不散席
- 粉丝: 32
- 资源: 2万+
最新资源
- 基于KNN算法的婚恋推荐算法研究.zip
- Animate.css-Tutorial:Animate.css教程的文件
- android应用源码动画文字自由移动-IT计算机-毕业设计.zip
- roadtrip-node:使用 node 和 mongo-db 的 roadtrip 应用程序
- TemplatesNetCore:我用于快速构建应用程序的代码模板,这些模板具有我在项目中通常使用的实践,特性和库
- WeatherWebApiSample
- mrobinson93.github.io:网站
- 数据库设计project——物业集团管理系统.zip
- Enterprise_Application_Solution:免费资料和样品
- porgy:Protoc插件
- V5:分层排队网络求解器
- dltmatlab代码-event-driven-IP:用于尖峰神经网络的事件驱动的内在可塑性(IP)学习规则
- MMath-Code:机器学习和微分方程
- testDBJenkins
- LunarCalendar:一个基于 Electron + React + Material Design 的工具栏日历,适用于 Mac、Windows 和 Linux
- dltmatlab代码-3D-DIC:3D-DIC