格式化输入输出
来源:互联网 发布:mac os 获取root权限 编辑:程序博客网 时间:2024/05/16 06:31
格式化输入输出分别指scanf和printf函数。
所谓格式化输入就是如果要输入,输入的格式必须与scanf中的格式相同,否则就无法输入。
例如:
scanf("num=%d",&num);
如果直接输入数值"1",不能完成对num的赋值,只有输入“num=1”才能对num赋值。
scanf输入的值通常先保存在缓冲区内,之后再根据变量数据类型取值。这样有时会产生问题,如果先对一个整型变量进行格式化输入,之后对一个字符型变量进行格式化输入,就会发现,输入整型变量的之后,对于字符型变量的格式化输入直接跳过。这是由于通常输入时回车也会被读入缓冲区,而int型变量只需要4个字节的数据,取走后缓冲区还有回车符存在,回车符为一个字节,而char型变量只需要读入一个字节数据,缓冲区正好还有一个字节数据,所以直接读取,不需要再另外输入。在char型变量格式化输入语句前加getchar()可以解决这个问题。
printf是缓冲区满行输出,未满行不输出,平常使用时不加'\n'也能输出是因为函数运行结束时会清缓冲区,清缓冲区时会把没输出的内容输出。以下程序可以验证。
#include <stdio.h>
int main()
{
printf("hello world");
while(1);
return 0;
}
此程序只运行while循环,不进行printf输出。
另外,printf和scanf共用一个缓冲区。
0 0
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- 格式化输入输出
- c++格式化输入输出
- 转贴:c++格式化输入输出
- C++格式化输入输出
- c++格式化输入输出
- C++格式化输入输出
- 非格式化输入输出函数
- c++格式化输入输出
- C++格式化输入输出
- C中的格式化输入输出
- c++格式化输入输出
- C++格式化输入输出
- Maven学习笔记(一)
- nodejs+mongodb做项目的详解
- spark近实时流式计算开源平台
- Magick++: NoDecodeDelegateForThisImageFormat with ICO file
- static与final
- 格式化输入输出
- 负载均衡算法及手段
- swift 中拨电话的实现
- 剑指offer-5-面试32:从 1 到 n 整数中 1 出现的次数(时间效率)
- Android 内存泄漏总结
- setValuesForKeysWithDictionary方法的正确使用姿势
- 数据结构应用题线性表的顺序表示
- 整数数组的遍历
- Java 阻塞队列