c语言文件
完整代码块展示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student_information
{
char name[];
char stu_ID[];
char sex[];
char class_[];
char score[];
}s[],a[];
int main() {
system("color E1");//改变cmd窗口颜色及前景色
//建立含有十个人名字的二维数组
char name1[][] = { {"伊杰"},{"张三"},{"李四"},{"漆靖"},{"绍杰"},{"曾纪"},{"省龙"},{"许慎"},{"赵五"},{"欧阳"} };
int i, n;
char item[] = { "学号 性别 班级 线代成绩" };
for (i = ;i < ;i++) {
strcpy(s[i].name, name1[i]);
strcat(name1[i], ".txt");//使创建的文件为txt格式
}
FILE* fp;//创建并打开以姓名命名的文件文档,并检查打开是否成功
for (i = ;i < ;i++) {
if (( fp = fopen(name1[i],"w+")) == NULL ) {
printf("file can not open!");
exit();
}
fprintf(fp, "%s", item);//第一行依次录入 学号 性别 班级 线代成绩
if (fclose(fp)) {
printf("file close error!");//关闭文件并检验
exit();
}
}
printf(" ##################################################### \n");
printf(" \n");
printf(" 学生信息管理系统 \n");
printf(" 欢迎您的使用! \n");
printf(" 请按任意键继续 \n");
printf(" \n");
printf(" ***************************************************** \n");
system("pause");
system("cls");
printf("请按:学号 性别 班级 线代成绩的顺序依次录入相关信息");
for (i = ;i < ;i++) {
printf("\n%s: ", s[i].name);
scanf("%s %s %s %s", s[i].stu_ID, s[i].sex, s[i].class_, s[i].score);//按顺序依次录入学生信息
if ((fp = fopen(name1[i], "a+")) == NULL) {
printf("file open error!");
exit();
}
fprintf(fp, "\n%s %s %s %s",s[i].stu_ID, s[i].sex, s[i].class_, s[i].score);
fclose(fp);
}
printf("录入成功\n");
system("pause");//使程序在此暂停
system("cls");//清屏
printf(" 下面请查看录入的学生成绩 \n");
for (i = ;i < ;i++) {
if ((fp = fopen(name1[i], "a+")) == NULL) {
printf("file open error!");
exit();
}
fscanf(fp, "%*[^\n]");//读取文件时跳过第一行
fscanf(fp, "%s %s %s %s",a[i].stu_ID, a[i].sex, a[i].class_, a[i].score);//按顺序依次读取文件内容
fclose(fp);
}
for (i = ;i < ;i++) {
printf("%s: %s %s %s %s\n", s[i].name,a[i].stu_ID,a[i].sex,a[i].class_,a[i].score);//输出学生相关信息
}
return ; }
任务一:
创建十个以姓名命名的文件文档
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student_information
{
char name[];
char stu_ID[];
char sex[];
char class_[];
char score[];
}s[],a[];
int main() {
system("color E1");//改变cmd窗口颜色及前景色
//建立含有十个人名字的二维数组
char name1[][] = { {"伊杰"},{"张三"},{"李四"},{"漆靖"},{"绍杰"},{"曾纪"},{"省龙"},{"许慎"},{"赵五"},{"欧阳"} };
int i, n;
char item[] = { "学号 性别 班级 线代成绩" };
for (i = ;i < ;i++) {
strcpy(s[i].name, name1[i]);
strcat(name1[i], ".txt");//使创建的文件为txt格式
}
FILE* fp;//创建并打开以姓名命名的文件文档,并检查打开是否成功
for (i = ;i < ;i++) {
if (( fp = fopen(name1[i],"w+")) == NULL ) {
printf("file can not open!");
exit();
}
fprintf(fp, "%s", item);//第一行依次录入 学号 性别 班级 线代成绩
if (fclose(fp)) {
printf("file close error!");//关闭文件并检验
exit();
}
}
任务二:
用文件写入每个人的学号,性别,班级,线代成绩
printf(" ##################################################### \n");
printf(" \n");
printf(" 学生信息管理系统 \n");
printf(" 欢迎您的使用! \n");
printf(" 请按任意键继续 \n");
printf(" \n");
printf(" ***************************************************** \n");
system("pause");
system("cls");
printf("请按:学号 性别 班级 线代成绩的顺序依次录入相关信息");
for (i = ;i < ;i++) {
printf("\n%s: ", s[i].name);
scanf("%s %s %s %s", s[i].stu_ID, s[i].sex, s[i].class_, s[i].score);//按顺序依次录入学生信息
if ((fp = fopen(name1[i], "a+")) == NULL) {
printf("file open error!");
exit();
}
fprintf(fp, "\n%s %s %s %s",s[i].stu_ID, s[i].sex, s[i].class_, s[i].score);
fclose(fp);
}
printf("录入成功\n");
system("pause");//使程序在此暂停
system("cls");//清屏
任务三:
用文件读取相关信息,并将其放在数组中
printf(" 下面请查看录入的学生成绩 \n");
for (i = ;i < ;i++) {
if ((fp = fopen(name1[i], "a+")) == NULL) {
printf("file open error!");
exit();
}
fscanf(fp, "%*[^\n]");//读取文件时跳过第一行
fscanf(fp, "%s %s %s %s",a[i].stu_ID, a[i].sex, a[i].class_, a[i].score);//按顺序依次读取文件内容
fclose(fp);
}
for (i = ;i < ;i++) {
printf("%s: %s %s %s %s\n", s[i].name,a[i].stu_ID,a[i].sex,a[i].class_,a[i].score);//输出学生相关信息
}
return ; }
任务四:
在网上查找并使用了一些system函数
system类函数:
system("cls"):清屏,适当使用使程序界面整洁。
system("color xy"):改变cmd窗口背景色与前景色,x对应前景色,y对应背景色;具体颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
system("pause"):冻结屏幕,便于观察程序的执行结果;
system("date"):显示或设置日期。
system("mode con cols=x lines=y"):设置窗口高度宽度,x为高度,y为宽度。
system("title 标题");//设置cmd窗口标题
总结:
刚开始看到文件操作时,几乎都不知道怎么下手,后来靠看网课,查百度逐步掌握了一些文件操作。
1、学会了一些文件基本操作,如"w","a"等,最后一定要记得关闭文件。
2、学会了一些system命令,使得程序界面更美观、简洁。
3、通过这次作业,我感受到了自主学习的重要性,多学多练,才能提高水平。
c语言文件的更多相关文章
- c语言文件读写操作总结
C语言文件读写操作总结 C语言文件操作 一.标准文件的读写 1.文件的打开 fopen() 文件的打开操作表示将给用户指定的文件在内存分配一个FILE结构区,并将该结构的指针返回给用户程序,以后用户程 ...
- go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )
go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...
- C语言文件操作
C语言文件操作,以下以基本的例子和说明来展开怎么通过C语言来进行文件操作. 操作文件,我们得需要知道什么?当然是路径和文件名. 首先我需要知道我操作的文件在哪里,叫什么名字.在C语言中还存在一个打开方 ...
- android多国语言文件夹文件汇总
android多国语言文件夹文件汇总如下: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-e ...
- 不可或缺 Windows Native (10) - C 语言: 文件
[源码下载] 不可或缺 Windows Native (10) - C 语言: 文件 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 文件 示例cFile.h #ifn ...
- C语言---文件
1. 需要了解的概念 包括:数据流.缓冲区.文件类型.文件存取方式 1.1 数据流: 指程序与数据的交互是以流的形式进行的.进行C语言文件的存取时,都会先进行“打开文件”操作,这个操作就是在打开数据流 ...
- CUBRID学习笔记 29 web管理中文语言文件 CUBRID教程
网站的中文语言文件部分 http://files.cnblogs.com/files/wang2650/Messages.7z
- C 语言文件操作
C 语言文件操作 1. 数据流: 程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流. 所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...
- [转]C语言文件输入/输出ACM改进版(freopen函数)
C语言文件输入/输出ACM改进版(freopen函数) 2009年5月27日 10:379,457 浏览数发表评论阅读评论 文章作者:姜南(Slyar) 文章来源:Slyar Home (www. ...
- C语言文件操作函数
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...
随机推荐
- 基于titanic数据集预测titanic号旅客生还率
数据清洗及可视化 实验内容 数据清洗是数据分析中非常重要的一部分,也最繁琐,做好这一步需要大量的经验和耐心.这门课程中,我将和大家一起,一步步完成这项工作.大家可以从这门课程中学习数据清洗的基本思路以 ...
- Bootstrap4 本地编译运行
Step1. 获取Bootstrap源代码 https://github.com/twbs/bootstrap Step2. 进入目录并切换npm源 npm --registry https://re ...
- 拥抱自动化,CODING 2.0 持续集成全新上线
在文章开始前,做一个小调查,在您的软件项目中集成一行新代码平均需要花多长时间? 15 分钟 一小时 半天 一天及以上 注意这里的集成是指将源码放在一起,并验证源码可以作为一个一致.运行可靠的软件的过程 ...
- 2018年Code Review状态报告
Code Review 代码评审是指在软件开发过程中,对源代码的系统性检查.通常的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平. Code Review是轻量级代码评审,相对于正式代码评审 ...
- 《HTTPS权威指南》读书笔记——PKI
互联网公钥基础设施 基于可信的第三方机构(CA,certification authority)实现不同成员在不见面的情况下进行安全通信 订阅人 需要证书来提供安全服务的团体 登记机构(RA) 完成证 ...
- Paint.NET软件分享
date: 2019-07-26 下载链接 官网链接 这是一款类Photoshop的轻量级图片编辑软件,仅有8.7MB.不多说话,直接上链接. 百度网盘链接 提取码:v4b2 软件简介 (百度百科警告 ...
- Think in Java 笔记(chapter1-7)
Content Chapter 1:对象导论 Chapter 2:一切都是对象 Chapter 3:操作符 Chapter 4:控制执行流程 Chapter 5:初始化与清理 Chapter 6:访问 ...
- 【RTOS】基于V7开发板的RTX5和FreeRTOS带CMSIS-RTOS V2封装层的模板例程下载,AC6和AC5两个版本
说明: 1.使用MDK的RTE环境开发RTX5和FreeRTOS,简单易移植,统一采用CMSIS-RTOS V2封装层. 2.DTCM是H7里面性能最高的RAM,主频400MHz,跟内核速度一样,所以 ...
- 软件测试价值提升之路- 第三章"拦截缺陷 "读书笔记
作为一个测试团队,基本的职责是:测试产品,发现缺陷,报告结果,使每个版本的测试水准稳步提升.这些价值是作为一个测试所必须具备的,发挥这些价值能够让测试获得研发团队的基本信任.这类价值分为3部分: 1) ...
- BOM介绍以及方法
BOM介绍和window对象的方法 一.BOM对象 (浏览器对象模型 BOM) 1.window alert() confirm() prompt() setInterval() setTimeo ...