标准IO之格式化输入和输出

1. 格式化输入

返回值:三个函数的返回值一致,若成功,指定输入的项数,若输入出错或在任意变换前已到达文件结尾则返回EOF

(1). scanf

原型:int scanf(const char *restrict format, ...);

最基础,从标准输入输入

(2). fscanf

原型:int fscanf(FILE *restrict fp, const char *restrict format, ...);

和(1)相比,可以指定流fp,不再局限标准输入

(3). sscanf

原型:int sscanf(const char *restrict buf, const char *restrict fromat, ...);

和(2)相比,不是从流输入,从数组buf中输入

2. 格式化输出

(1). printf

最基础,将格式化数据写到标准输出,不涉及缓冲区溢出的问题

返回值:若成功返回输出字符数,若出错则返回负值

(2). fprintf

原型:int fprintf(FILE *restrict fp, const char *restrict format, ...);

返回值:若成功返回输出字符数,若出错则返回负值

和(1)相比,可以指定要写入的流,不再局限标准输出

(3). sprintf

原型:int sprintf(char *restrict buf, const *restrict format, ...);

返回值:若成功返回存入数组中的字符数,若编码出错则返回负值

和(2)相比,写入的不再是流,而是数组buf,sprintf会在该数组的尾端自动添加一个null字节,但该字节不包括在返回值中,由于加入null字节的缘故,可能会造成缓冲区溢出,调用者要注意。

(4). snprintf

原型:int sprintf(char *restrict buf, size_t n, const *restrict format, ...);

返回值:若成功返回存入数组中的字符数,若编码出错则返回负值

和(3)相比,加入了缓冲区长度n,解决了缓冲区溢出的问题,返回值也不包括null字节

时间: 2024-08-14 04:20:07

标准IO之格式化输入和输出的相关文章

文件格式化输入和输出

在控制台操作时,使用的格式化输入和输出为scanf和printf,那么对文件的IO操作也可以使用fscanf和fprintf,它们的使用如下: #include <stdio.h> #include <string.h> #include <stdlib.h> const int LENGTH=80; int main(void){ long num1=234567L; long num2=345123L; long num3=789234L; long num4=0L

格式化输入与输出

标准库定义了操纵符来修改流的状态,endl 就是一个操纵符,它输出一个换行符并刷新缓冲区. 控制布尔值格式 boolalpha 控制输出 true.false. noboolalpha 取消输出 true.false,恢复默认的输出格式. cout << "default bool values: " << true << " " << false << endl; cout << "

C 语言字符串和格式化输入与输出

1.前导程序 1 #include<stdio.h> 2 #include<string.h> //1提供strlen()的函数原型 3 #define DENSITY 62.4 //2预处理命令 4 int main(void) 5 { 6 float weight,volume; 7 int size,letters; 8 char name[40]; //3定义一个长度为40的数组 9 10 printf("Hi! What's your first name?\n

C 字符串和格式化输入与输出

1.前导程序 #include<stdio.h> #include<string.h> //1提供strlen()的函数原型 #define DENSITY 62.4 //2预处理命令 int main(void) { float weight,volume; int size,letters; char name[40]; //3定义一个长度为40的数组 printf("Hi! What's your first name?\n"); scanf("

《C语言程序设计:现代方法(第2版)》第3章 格式化输入/输出

目录 第3章 格式化输入/输出 第3章 格式化输入/输出 在探索难以实现的问题时,问题本身的简单性只会使情况更糟. scanf函数和printf函数是C语言编程中使用最频繁的两个函数,它们用来格式化输入和输出.正如本章要展示的那样,虽然这两个函数功能强大,但要用好它们却不容易.3.1节描述printf函数,3.2节则介绍scanf函数.但是这两节的介绍都不完整,完整的细节将留到第22章中介绍. 原文地址:https://www.cnblogs.com/shenhuanjie/p/11431045

1.Linux标准IO编程

1.1Linux系统调用和用户编程接口 1.1.1系统调用 用户程序向操作系统提出请求的接口.不同的系统提供的系统调用接口各不相同.继承UNIX系统调用中最基本和最有用的部分. 调用按照功能分:进程控制.进程间通讯.文件系统控制.存储管理.网络管理.套接字控制.用户管理. 1.1.2用户编程接口 实际开发使用的是用户编程接口: (1).系统调用接口功能非常简单,无法满足程序的需求.(2).不同操作系统的系统调用接口不兼容,程序移植时工作量大. 1.2Linux标准编程接口 1.2.1标准IO的由

输入和输出--File类

输入和输出 写在前面的:Java中的输入和输出还是比较重要的,之前我都没想整理IO和多线程的,但是在研究后面的好多东西时候,经常要读取资源文件,这个时候就不得不回过头来整理IO了.要玩熟Java的输入和输入,就必须先玩熟一个类:File.然后在就是Java.io包下的类和接口了.Java的IO主要包括了输入和输出2种流,每种输入和输出又分为字节流和字符流.值得注意和研究的是Java的IO流使用了一种装饰器设计模式,它将IO流分成底层节点流和上层处理流.除此之外,还要研究2个东西:1,Java对象

Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是Python2.7,虽然现在随着版本的迁移至Python3,但是这个并不会对我们造成什么困扰,毕竟只是一个适应阶段 我们的学习资料:廖雪峰官方网站Python2.7教程 一.IDE选择PyCharm 我们虽然在前面一章已经配置过,但是我们还是有很多的IDE可以开发Py,比如su

1.java.io包中定义了多个流类型来实现输入和输出功能,

1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B.字节流和字符流 C.节点流和处理流   D.File stream E.Pipe stream F.Random stream G.Filter stream