文件操作之2_标准I/O库
来源:互联网 发布:大数据与网络安全 编辑:程序博客网 时间:2024/05/27 20:19
在启动程序时,有三个文件是自动打开的,它们是stdin、stdout和stderr。它们都是在stdio.h头文件中定义的,分别代表着标准输入、标准输出和标准错误输出,与底层文件描述符0、1和2相对应。
本节将介绍标准I/O库中的下列库函数:
fopen、fclose
fread、fwrite
fflush-
fseek-
fgetc、getc、getchar
fputc、putc、putchar
fgets、gets
printf、fprintf和sprintf
scanf、fscanf和sscanf
1. fopen函数
函数原型:
#include <stdio.h>
FILE *fopen(const char *filename,const char *mode);
fopen库函数类似于底层的open系统调用。它主要用于文件和终端的输入输出。fopen打开由filename参数指定的文件,并把它与一个文件流关联起来。mode参数指定文件的打开方式,它取下列字符串中的值:
"r"或"rb":以只读方式打开
"w"或"wb":以写方式打开,并把文件长度截断为零。
"a"或"ab":以写方式打开,新内容追加在文件为为尾。
"r+"或"rb+"或"r+b":以更新方式打开(读和写)
"w+"或"wb+"或"w+b":以更新方式打开,并把文件长度截断为零。
"a"或"ab"或"a+b":以更新方式打开,新内容追加在文件为为尾。
字母b表示文件是一个二进制文件而不是文本文件。2. fread函数
函数原型:
#include <stdio.h>
size_t fread(void *ptr,size_t size,size_t nitems,FILE *stream);
fread库函数用于从一个文件流里读取数据。数据从文件流strean读到由ptr指向的数据缓冲区里。fread和fwrite都是对数据记录进行操作,size参数指定每个数据记录的长度,计数器nitems给出要传输的记录的个数。它的返回值是成功读到缓冲区里的记录个数。
3. fwrite函数
函数原型:
#include <stdio.h>
size_t fwrite(const void *ptr,size_t size,size_t nitems,FILE *stream);
fwrite库函数和fread函数有相似的借口。它从指定的数据缓冲区里读出数据记录,并把它们写到输出流中。它的返回值是成功写入的记录个数。
4. fclose函数
函数原型:
#include <stdio.h>
int fclose(FILE *stream);
fclose函数关闭指定的文件流stream,使所有尚未写出的数据都写出。
程序实例:
fread.c
#include <stdio.h>
int main()
{
size_t n,m;
char buf[10];
FILE *fp1,*fp2;
fp1 = fopen("test1","r");
fp2 = fopen("test2","w");
n = fread(buf,sizeof(buf),1,fp1);
fwrite(buf,sizeof(buf),1,fp2);
exit(0);
}
程序运行前test1内容为 zhangxm ,test2中没有内容。
程序运行后test2中内容为:
zhangxm
^D^H
注:后面的乱码没有被解决。
- 文件操作之2_标准I/O库
- 文件操作之标准I/O函数库
- 标准文件I/O操作
- C语言标准I/O文件操作
- 5.7 标准I/O库_每次一行I/O
- 5.9 标准I/O库_二进制I/O
- 5.11 标准I/O库_格式化I/O
- 5.4 标准I/O库_缓冲
- 5.13 标准I/O库_临时文件
- C语言_标准I/O库
- 标准I/O操作
- 文件操作-标准I/O操作--文件结束标识EOF
- linux文件操作-标准I/O操作--fgets与gets
- 文件操作-标准I/O操作--getchar() getc()
- 文件操作--标准I/O操作--fopen() fclose() fread() fwrite()
- 文件I/O与标准I/O
- 标准I/O、文件I/O
- 文件I/O与标准I/O
- 看了《学习CSS布局》,修改博客相册布局。列表解析、元组解包时报错,未解决。
- hwclock
- 0.driverbase-自旋锁(SpinLock)wrk代码分析
- C中指针 ++与*操作
- java试题(2)--使用FileInputStream,FileOutputStream和BufferedInputStream和BufferedOutInputStream复制文件
- 文件操作之2_标准I/O库
- 利用NSCache提升效率
- Mac SVNX 红色文件夹
- RTC实时时钟驱动
- DirectX 学习一:环境的配置
- 计算机中数的表示与大小端法
- linux下测试RTC驱动相关的命令date和hwclock常见用法简介
- 小明给小红传了张纸条
- linux 的date命令及系统时间设置