zoukankan      html  css  js  c++  java
  • c语言文件

    任务一:

    你现在拥有一个数组,数组中储存着总共10个人的姓名字符串

    你需要为每个人创建一个txt文件,以他们的名字命名。

    例如: 生成 笨笨.txt文件

    代码:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int main() {
    	FILE * fp;
    	int i;
    	char name_classmates[10][20] = { "张旭","陈烜","朱仕岳","茅志雄","李龙生","吴执涛","洪礼强","李欣欣","笨笨","宋思坡" }; 
    	for (i = 0; i < 10; i++) {
    	    strcat(name_classmates[i], ".txt");
    		if ((fp = fopen(name_classmates[i], "w"))==NULL) {
    			printf("File open error!\n");
    			exit(0);
    		}
    	    if (fclose(fp)) {
    		   printf("Can not close the file\n");
    		   exit(0);
    		}
    	}
    	return 0;
    }
    

    运行结果:

    任务二:

    在任务一的基础上,这次不仅仅要创建txt文件,还需要往文件中写入

    每个人的学号,性别,班级,线代成绩

    代码:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    struct astudent {
    	char name[10];
    	char Number_stu[25];
    	char sex[10];
    	char Class[10];
    	char score[5];
    };
    int main() {
    	FILE * fp;
    	int i;
    	struct astudent students[10];
    	char name_classmates[10][20] = { "张旭","陈烜","朱仕岳","茅志雄","李龙生","吴执涛","洪礼强","李欣欣","笨笨","宋思坡" };
    	printf("请依次输入学号,性别,班级,线代成绩\n");
    	printf("姓名:    学号:      性别:    班级:    线代成绩:     \n");
    	for (i = 0; i < 10; i++) {
    		printf("%s",name_classmates[i]);//在每行开头输出该同学的姓名,随后依次读入学号、性别、班级、线代成绩
    	    strcat(name_classmates[i], ".txt");
    		if ((fp = fopen(name_classmates[i], "w"))==NULL) {
    			printf("File open error!\n");
    			exit(0);
    		}
    		scanf("%s %s %s %s", students[i].Number_stu, students[i].sex, students[i].Class, students[i].score);
    		fprintf(fp, "%s  %s  %s  %s", students[i].Number_stu, students[i].sex, students[i].Class, students[i].score);
    	    if (fclose(fp)) {
    		   printf("Can not close the file\n");
    		   exit(0);
    		}
    	}
    	return 0;
    }
    

    依次输入学号、性别、班级、线代成绩:

    运行结果:


    任务三:

    在任务二生成的文件中,将每个人的信息再重新读取出来,放入数组中。

    [要求使用结构体数组,结构体需要包含姓名,学号,性别,班级,线代成绩5个属性]

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    struct astudent {
    	char name[10];
    	char Number_stu[25];
    	char sex[10];
    	char Class[10];
    	char score[5];
    };
    int main() {
    	FILE * fp;
    	int i;
    	struct astudent students[10];
    	char name_classmates[10][20] = { "张旭","陈烜","朱仕岳","茅志雄","李龙生","吴执涛","洪礼强","李欣欣","笨笨","宋思坡" };
    	for (i = 0; i < 10; i++) {
    		strcpy(students[i].name, name_classmates[i]);
    		strcat(name_classmates[i], ".txt");
    		if ((fp = fopen(name_classmates[i], "r"))==NULL) {
    			printf("File open error!\n");
    			exit(0);
    		}
    		fscanf(fp, "%s %s %s %s", students[i].Number_stu, students[i].sex, students[i].Class, students[i].score);
    	    if (fclose(fp)) {
    		   printf("Can not close the file\n");
    		   exit(0);
    		}
    	}
    	printf("姓名:     学号:       性别:     班级:     线代成绩:     \n");
    	for (i = 0; i < 10; i++) {
    		printf("%-11s%-13s%-11s%-11s%s\n", students[i].name, students[i].Number_stu, students[i].sex, students[i].Class, students[i].score);
    	}
    	return 0;
    }
    

    运行结果截图:

    任务四:

    试着使用一下system("cls"),system("pause")这两个命令,看看这两个

    命令能不能对你的程序起到一些美化的作用。

    拓展:上网搜索类似的其他函数,使用并解释他们的作用。

    system("pause") //暂停,按任意键继续

    system("cls") //清屏
    system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。
    0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色

    四、总结

    1.对文件的操作如fscanf、fprintf、fopen,fclose更加熟练。
    2.学习了system("pause")和system("cls")命令,百度了一个改变运行框颜色的system语句——system("color 0A")。
    3.本次作业主要练习关于文本文件的基本操作,没用到二进制文件的操作。

  • 相关阅读:
    User Profile Service 应用程序的新增功能
    内容管理互操作性服务 (CMIS) 连接器概述 (SharePoint Server 2010)
    AD二次开发提示“出现了一个操作错误”的解决办法
    Excel2010与MOSS2010数据同步配置
    InfoPath2010表单IE浏览器2个“微型内嵌工具”的使用和介绍
    洗礼灵魂,修炼python(1)python简介
    洗礼灵魂,修炼python(2)python安装和配置
    C语言标准定义的32个关键字
    【学习笔记】.NET知识体系结构
    【读】自定义博客园皮肤:暗色流体响应式布局
  • 原文地址:https://www.cnblogs.com/cjt0722/p/12064123.html
Copyright © 2011-2022 走看看