【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;
}
相关推荐
道不尽世间的沧桑40 分钟前
第17篇:网络请求与Axios集成
开发语言·前端·javascript
xvch1 小时前
Kotlin 2.1.0 入门教程(二十五)类型擦除
android·kotlin
久绊A1 小时前
Python 基本语法的详细解释
开发语言·windows·python
软件黑马王子4 小时前
C#初级教程(4)——流程控制:从基础到实践
开发语言·c#
闲猫4 小时前
go orm GORM
开发语言·后端·golang
李白同学6 小时前
【C语言】结构体内存对齐问题
c语言·开发语言
楼台的春风7 小时前
【MCU驱动开发概述】
c语言·驱动开发·单片机·嵌入式硬件·mcu·自动驾驶·嵌入式
黑子哥呢?7 小时前
安装Bash completion解决tab不能补全问题
开发语言·bash
青龙小码农7 小时前
yum报错:bash: /usr/bin/yum: /usr/bin/python: 坏的解释器:没有那个文件或目录
开发语言·python·bash·liunx
大数据追光猿7 小时前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法