【C语言】常见文件操作


文件的常见操作

c 复制代码
#include<stdio.h>

// 由于devc++代码编码为ANCI,故读取的文件中若有中文,请设置文件编码为ANCI,否则会乱码 

// 读文件
void test1() {
	char ch;
	FILE *fp; // 创建文件指针
	fp = fopen("./file.txt", "r"); // 读取文件
	while((ch=fgetc(fp))!= EOF) {	// 访问文件中数据
		putchar(ch);	//输出文件中字符
	}
	fclose(fp);  // 关闭文件
}

// 写单个字符到文件中 
void test2() {
	char ch;
    FILE *fp; // 创建文件指针
    fp = fopen("./file.txt", "r+");
    if (fp == NULL) {
        perror("Failed to open file");
        return;
    }
    // fputc(): 写单个字符 
    fputc('a', fp);
    
    rewind(fp); // 将文件指针移动到文件开头
    while ((ch = fgetc(fp)) != EOF) { // 访问文件中数据
        putchar(ch); // 输出文件中字符
    }
    fclose(fp); // 关闭文件
}

// 写一个字符串到文件
void test3() {
	char in[50], out[50];
	FILE *fp = fopen("./file.txt", "w+"); // w+每次都会清空文件重新写 
	// 写入文件
	gets(in);
	fputs(in, fp);
	// 读取文件,首先将文件指针移动到文件头 
	rewind(fp);
	fgets(out, 50, fp);
	puts(out);
	
	fclose(fp);  // 关闭文件
} 

// 格式化写入文件
void test4() {
	int i = 3;
	float f = 4.50;
	FILE *fp = fopen("./file.txt", "w+");
	fprintf(fp, "%d, %6.2f",i,f);	// 格式化写入文件 
	fscanf(fp, "%d, %f", i, f);
	printf("%d %f",i ,f);
	
	fclose(fp);  // 关闭文件
} 

// 二进制读写文件
void test5() {
	float arr[5] = {1,2,3,4,5};
	float res[5];
	FILE *fp = fopen("./file.dat", "wb+"); // ------注意这里使用是wb+才可以对二进制文件操作 
	// 向文件写入一个数据块 arr是float类型的数组,每个元素占4字节,总共十个元素
	// 这里表示把整个数组都写入文件中 
	fwrite(arr, sizeof(float), 5,fp);
	
	rewind(fp);
	
	// 从文件中读取一个数据块 
	fread(res, sizeof(float), 5, fp);
	// 输出一下文件中内容,也就是res数组中读取的内容
	for (int i=0; i<5; i++) {
		printf("%f ", res[i]);
	} 
	

	fclose(fp);  // 关闭文件
} 	

int main() {
//	test1();
//	test2();
//	test3();
//	test4();
	test5();
	return 0;
}
相关推荐
晓蛋5 天前
c语言指的是什么意思
c语言·编译器·编程开发·集成开发环境·程序实例
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
傲世仙尊5 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
千里马学框架5 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台5 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone5 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
牵猫散步的鱼儿5 天前
重载、重写(覆盖)、重定义区别
c语言
伞伞悦读5 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
phltxy5 天前
C 语言指针:从内存地址到灵活的数据访问
c语言
致远ccc5 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试