C语言创建记录文件

任务概述

简单的创建一个记录型文件

文件分为流式文件和记录型文件。流式文件中的数据没有组织结构,可以认为是一长串的字符;而记录型文件是有结构的,比如我们用的excel,可以认为每一行是一条记录,每条记录中可以有不同类型的数据,如字符型的姓名,浮点型的分数,这些数据组成了一个同学的成绩记录。
这次需要做的就是简单的做个实践,创建一个记录型文件用于记录学生信息,每条记录包含学生姓名,学生专业课程,学生学号。

代码部分

#include<stdio.h>
#include<stdlib.h>
#define N 3
typedef struct{
	int number;
	char name[30];
	char major[30];
}Student_info;
// 输入学生的学号,打印其中的信息
void readInfo(int index){
	FILE *fp = fopen("students.info","r");
	if(fp == NULL){
		printf("文件打开失败!");
		exit(0);
	}
	fseek(fp, index*sizeof(Student_info), SEEK_SET);
	Student_info stu;
	fread(&stu, sizeof(Student_info), 1, fp);
	printf("学生编号:%d\n",stu.number);
	printf("学生姓名:%s\n",stu.name);
	printf("学生专业:%s\n",stu.major);
	fclose(fp);
}

int main(){
	// 
	FILE *fp = fopen("students.info", "w");
	if(fp==NULL){
		printf("打开文件失败!");
		exit(0);
	}
	Student_info student[N];
	for(int i=0; i<N; i++){
		student[i].number = i;
		scanf("%s",student[i].name);
		scanf("%s",student[i].major);
	}
	// 将输入的信息写入文件中
	fwrite(student, sizeof(Student_info),N,fp);
	fclose(fp);
	readInfo(0);	// 0号学生信息
	return 0;
}

执行之后生成student.info文件,这个后缀名可以自己定,甚至可以写成.txt,但是这个文件的读取需要自己写相关的代码才能正确获取里面的信息,用其他软件打开得到的可能会是一堆乱码,比如用记事本打开,由于记事本会将里面的数据处理成字符串,所以每个字节记事本都会尝试着转成对应的字符字形码,有些字节中存放的数据不是字符,处理出来就成了乱码。

存在的问题

这里只能输入ascii字符,不能输入中文字符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值