C语言文件操作

前言:

fopen(A,B)    参数A,B均是字符串;A表示待打开文件的名字,B表示打开方式

fclose(FILE*   F)        关闭文件F

常见打开方式:

"w"    写入操作          "r"    读取操作         "a"追加数据

"rb"    二进制读取操作            "wb"     二进制写入操作

"r+":可读可写,原文件必须存在            "w+":创建一个可读可写的新文件

"a+":可读可追加

常用函数:

fgetc(FILE*   F)        从F指向的文件中读取一个字符

fputc( int   C , FILE *   F )         将C写入F所指向的文件当中

fgets( char *  S , int   n , FILE *   F )       从F所指向的文件中读取n个字符到S

fputs( char *   S , FILE *  F )        向F所指向的文件中写入字符串S

fread和fwrite函数用于二进制的读写

fread( buf , size , num , fp )          //参数num表示读取次数

fwrite( buf , size , num , fp )       功能相反,其余同上

freopen( const  char *  A , const  char *  B , FILE *  F )          //文件流重定向

A:文件名称                 B:打开方式                  F:文件流

rewind(FILE*    F)        使文件的读取位置指针重新指向文件的开头

样例代码:

//Codes1
#include <stdio.h>

int main(int argc, char** argv) {
	FILE* fp = fopen("E:\\桌面材料\\新建文件夹\\新建 文本文档.txt", "a");
	char* s = "Hello World!";
	fputs(s, fp);
	fclose(fp);
	return 0;
} 
//Codes2
#include <stdio.h>

int main(int argc, char** argv) {
	FILE* fp = fopen("E:\\桌面材料\\新建文件夹\\新建 文本文档.txt", "r");
	char c;
	while((c = fgetc(fp)) != -1) {    //当读到文件末尾时,返回值为-1
		printf("%c", c);
	}
	fclose(fp);
	return 0;
}
//Codes3
#include <stdio.h>

int main(int argc, char** argv) {
	FILE* fp = fopen("E:\\桌面材料\\新建文件夹\\新建 文本文档.txt", "r");
	char buf[1024];
	while(fgets(buf, sizeof(buf), fp) != NULL) {
		printf("%s", buf);
	}
	fclose(fp);
	return 0;
} 
//Codes4    文件拷贝
#include <stdio.h>

int main(int argc, char** argv) {
	FILE* fp1 = fopen("E:\\桌面材料\\新建文件夹\\sana.jpg", "rb");
	FILE* fp2 = fopen("E:\\桌面材料\\新建文件夹\\sana_copy.jpg", "wb");
	
	int n;
	char buf[1024];
    //每次从源文件中读取一个字节,重复sizeof(buf)次,最终将读取到的元素个数返回给变量n
	while(n = fread(buf, 1, sizeof(buf), fp1)) {
        //从buf中每次写入一个字节,重复n次
		fwrite(buf, 1, n, fp2);
	}
	fclose(fp1);
	fclose(fp2);
	return 0;
} 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值