本文介绍: puts()函数用于字符串输出标准输出流,并自添加换行符,它接受一个资格字符作为参数,并显示屏幕上。fopen():来创建一个新的文件,或者打开一个已有的文件(有该文件打开没有文件创建打开写入失败他会返回一个特殊值EOF,EOF是一个定义stdio.h头文件常量,他的值是-1.putchar()函数将一个字符写入到标准输入流,这个字符在同一时间只会输出一个单一的字符字符集:泛泛意义上的文本文件中的数据磁盘保存二进制之间的映射关系。​ 如果操作的是文本文件,则对应解码集。

16 文件操作



嵌入式开发基本用不上,这章不重要

aimg


字符集:泛泛意义上的文本文件中的数据磁盘保存二进制之间的映射关系

常见字符集:ASCLL,Latin,GB2312,GBK,UTF-8

解码过程:从看不懂到看得懂的过程

​ 如果操作时文本文件,则对应的时解码集。

编码过程解码时逆过程,从看得懂的转换为看不懂的过程

​ 如果操作的是文本文件,则对应解码集。

乱码问题:由于我们解码使用字符集不是当初编码使用字符集导致的!

避免乱码解码使用字符集必须与当初编码使用字符集一致。

C程序中,文件数据输入/输出操作以“”的方式进行,可以看做是一种数据的流动。

输入流:数据数据源文件键盘)到程序内存)的传输路径

输出流:数据程序内存)到数据源(文件屏幕等)传输路径

要站在内存的角度

16.2.2 标准文件
标准文件 文件指针 设备
标准输入 stdin 键盘
标准输出 stdout 屏幕
标准错误 stderr 屏幕
16.2.4 getchar()和putchar()

getchar()函数是从标准输入读取个字符,在同一个时间内只会读取一个单一的字符

int getchar(void);

putchar()函数将一个字符写入到标准输入流,这个字符在同一时间只会输出一个单一的字符

int putchar(int character);
16.2.5 gets()和puts函数

gets()函数是从标准输入流读取一行文本,并将其存储在一个字符数组中,直到遇到换行为止。

char *gets(char *str);

puts()函数用于将字符串输出到标准输出流,并自添加换行符,它接受一个资格字符作为参数,并显示在屏幕上。

int puts(const char *str);

写入失败他会返回一个特殊值EOF,EOF是一个定义stdio.h头文件常量,他的值是-1.

写入成功,会返回写入的字符数。

16.3 文件读写

16.3.1 打开文件

fopen():来创建一个新的文件,或者打开一个已有的文件(有该文件就打开,没有该文件就创建再打开)

头文件

stdio.h
FILE *fopen(const char *filename,const char *mode);

FILE *表示文件流,如果打开失败就会返回一个空指针(NULL)

mode是指文件打开的模式

模式 描述
r 只读模式
w 只写模式:文件存在,清楚文件的内容从头写,如果文件不存在,创建一个新文件从头写。
a 追加模式:文件不存在会创建一个新的文件,文件存在,会在文件内容后面追加写入。
rb 只读二进制模式
wb 只写二进制模式:文件存在,清楚文件的内容从头写,如果文件不存在,创建一个新文件从头写。
ab 追加二进制模式:文件不存在会创建一个新的文件,文件存在,会在文件内容后面追加写入。
r+ 读写模式
w+ 读写模式:文件存在,清楚文件的内容从头写,如果文件不存在,创建一个新文件从头写。
a+ 读写模式:文件不存在会创建一个新的文件,文件存在,会在文件内容后面追加写入。
rb+ 读写二进制模式:打开一个二进制文件,允许读写文件。
r+b 读写二进制模式:打开一个二进制文件,允许读写文件。
wb+ 读写二进制模式:打开一个二进制文件,从头读写文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,则清空文件并从头读写。
w+b 读写二进制模式:打开一个二进制文件,从头读写文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,则清空文件并从头读写。
ab+ 读写二进制模式:打开一个二进制文件,读取追加写入文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,读取或在已有内容后面追加写入。
a+b 读写二进制模式:打开一个二进制文件,读取或追加写入文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,读取或在已有内容后面追加写入。
16.3.2 关闭文件

fclose()

头文件

stdio.h
int fclose(FILE *stream);

返回一个整数值表示成功

返回EOF,失败

16.3.3 写入文件

fputc():逐字符写入文件

头文件

stdio.h
int fput(int character,FILE *stream);

写入失败返回EOF

fputs()将字符串写入文件

stdio.h
int fputs(const char *str,FILE *stream);

写入失败返回EOF

fprintf()格式化写入文件

头文件

stdio.h
int fprintf(FILE *stream,const char *format,...);

写入失败返回EOF

16.3.4 读取文件

fgetc()用于从文件中逐字符读取。

stdio.h
int fgetc(FILE *stream);

读取失败,返回EOF

fgets():从文件中逐行读取,遇到换行符结束,读取的内容包括换行符

stdio.h
char *fgets(char *str,int num,FILE *stream);

读取失败,返回一个空指针

fscanf():从文件中解析数据并存储变量中,使用空白字符(空格、制表符、换行符等)分隔内容赋值给不同的变量

stdio.h 
int fscanf(FILE *stream, const char *format, ...);

读取失败返回EOF

原文地址:https://blog.csdn.net/qq_46115245/article/details/134677341

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_27512.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注