【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;
}
相关推荐
W是笔名5 分钟前
python___容器类型的数据___序列
开发语言·python
☆cwlulu6 分钟前
try-throw-catch异常捕获流程
开发语言·c++
漂亮的摩托12 分钟前
深感一无所长,准备试着从零开始写个富文本编辑器
开发语言·php
帅次16 分钟前
Android 高级工程师面试:Java 多线程与并发 近1年高频追问 22 题
android·java·面试
要开心吖ZSH19 分钟前
Java事务与MySQL事务的关系及MVCC通俗解析
java·开发语言·mysql·mvcc
2501_9437823529 分钟前
【共创季稿事节】摩斯电码转换器:编码表与双向转换的实现
android·华为·鸿蒙·鸿蒙系统
寻道码路36 分钟前
LangChain4j Java AI 应用开发实战(二十六):多模型集成策略 —— OpenAI、DeepSeek、阿里百炼混合使用
java·开发语言·人工智能·ai
STCNXPARM36 分钟前
Android selinux详解
android·selinux
jzwalliser39 分钟前
安卓手机玩转Manim动画制作
android·manim
面朝大海,春不暖,花不开41 分钟前
BPF与eBPF简介:核心概念与观测工具概览
开发语言·php·ebpf·bpf·性能观测