【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;
}
相关推荐
GoDve丨7 分钟前
嵌入式初学-C语言-数据结构--七
服务器·c语言·开发语言·数据结构·b树·算法·链表
拾木20020 分钟前
同步io和异步io
java·开发语言·python
shuai_25821 分钟前
深入解析C++单例模式:从基础到线程安全的高效实现
开发语言·c++·qt
黒井深37 分钟前
Visual Studio(vs)下载安装C/C++运行环境配置和基本使用注意事项
c语言·c++·ide·visual studio
时差freebright38 分钟前
【Visual Studio 报错】vs 在使用二进制写入文件时弹窗报错:使用简体中文 gb2312 编码加载文件
android·java·visual studio
东离与糖宝39 分钟前
Rust 所有权 简介
开发语言·后端·rust
你可以自己看42 分钟前
初学者如何掌握python
开发语言·python
秋风起,再归来~42 分钟前
C++从入门到起飞之——继承上篇 全方位剖析!
开发语言·c++·继承
.普通人44 分钟前
c语言--力扣简单题目(最后一个单词的长度)讲解
c语言·算法·leetcode
大柏怎么被偷了1 小时前
【Qt】子控件选择器
开发语言·c++·qt