IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言文件的一些操作 -> 正文阅读

[C++知识库]C语言文件的一些操作

这一段代码,展示的是写一个指令,可以拷贝一个文件中的内容到另一个文件中。

	FILE* fpIn = fopen("argv[1]", "r");
	assert(fpIn != NULL);
	FILE* fpOut = fopen("argv[2]", "w");
	assert(fpOut != NULL);
	char buffer[256] = { 0 };
	char* res = fgets(buffer, 256, fpIn);
	while (res != NULL) {
		fputs(buffer, fpOut);
		res = fgets(buffer, 256, fpIn);
	}
	fclose(fpIn);
	fclose(fpOut);
	printf("拷贝完成……");

这里面有一些函数属于文件的操作函数。
FILEfp 是定义一个文件指针,在编译器内部,文件的文件名,当前状态,位置等信息被保存在一个名为FILE结构体中。
fopen打开文件的函数,返回一个指针指向打开的文件,指针的类型是FILE类型的,如果错误那就返回空,可以用prror,strerror返回错误信息。第一个参数是const char
类型的文件名,第二个参数是打开模式,打开模式有r只读,w只写,a追加,rb二进制文件只读,wb二进制文件只写等。
fclose关闭指针指向的文件。
fgets,char *fgets(char *str, int n, FILE *stream),在代码中看,是从fpIn中读取一行,送到buffer中,fputs把数据从buffer写到fpOut中。
这段代码只能拷贝文本文件,因为它是按照字符的方式进行拷贝的。如果是其他格式的文件比如图片。
拷贝部分可以这样做

	char buffer[256] = { 0 };
	size_t count = fread(buffer, sizeof(char), 256, fpIn);
	while (count != 0) {
		fwrite(buffer, sizeof(char), count, fpOut);
		count = fread(buffer, sizeof(char), 256, fpIn);

这里面有两个函数,fwrite二进制输出,在代码中理解它的使用,第一个参数表示从哪儿写出去,第二个表示每个元素的大小,第三个写多少个最后写到哪里,fread同理,是一个二进制输入函数。
这两段代码中的函数都是文件的顺序读写,文件还有随机读写的形式,没有写出好的例子,先记一下这几个函数
fseek int fseek(FILE* stream,long int offset,int origin)根据文件指针的位置和偏移量来定位文件,第一个参数指针用来定位文件,第二个参数是偏移量,第三个参数表示相对位置,相对位置可以相对于当前位置,文件末尾,或者是文件起始位置。
fteel,返回文件相对于起始位置的偏移量。传入定位文件的指针。rewind函数,让文件指针的位置回到文件的起始位置。也传入指针。
还有一个feof函数,用于当文件读取结束的时候判断是因为读取失败了还是真正到文件末尾结束了。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:37:50  更:2021-08-02 10:38:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:44:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码