C语言文件

任务一:

你现在拥有一个数组,数组中储存着总共10个人的姓名字符串
你需要为每个人创建一个txt文件,以他们的名字命名。
例如: 生成 笨笨.txt文件

代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void){
    FILE * fp;
    char name[10][20] = { "朱仕岳","张旭","陈烜","茅志雄","杨涛","李龙生","蔡鸿顺","宋林涛","雷雯雯","郝冰冰" };
    int i;
    for (i = 0; i < 10; i++) {
        sprintf(name[i], "%s.txt", name[i]);
        fp = fopen(name[i], "w");
        if (fp == NULL) {
            break;
        }
        fclose(fp);
    }
    return 0;

}

运行结果:

 

 

任务二:

在任务一的基础上,这次不仅仅要创建txt文件,还需要往文件中写入
每个人的学号,性别,班级,线代成绩

代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct people{
    char name[10];
    char number[30];
    char sex[10];
    char classs[10];
    char score[10];
}apeople[10];
int main(void){
    FILE * fp;
    char name[10][20] = { "朱仕岳","张旭","陈烜","茅志雄","杨涛","李龙生","蔡鸿顺","宋林涛","雷雯雯","郝冰冰" };
    int i;
    printf("请依次输入学号,姓名,班级和线性代数成绩\n");
    printf("姓名:    学号:    性别:    班级:    线性代数成绩:    \n");

    for (i = 0; i < 10; i++) {
        printf( "%s", name[i]);
        strcat (name[i],".tet" );
        if ((fp = fopen(name[i], "w")) == NULL) {
            printf("Error!\n");
            exit(0);
        }
        scanf("%s %s %s %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score);
        fprintf(fp, "%s  %s  %s  %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score);
        if (fclose(fp)) {
            printf("Can't close the file\n");
            exit(0);
        }
    }
    return 0;

}

 

运行结果:

 

 

 

任务三:

在任务二生成的文件中,将每个人的信息再重新读取出来,放入数组中。
[要求使用结构体数组,结构体需要包含姓名,学号,性别,班级,线代成绩5个属性]

代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct people{
    char name[10];
    char number[30];
    char sex[10];
    char classs[10];
    char score[10];
}apeople[10];
int main(void){
    FILE * fp;
    char name[10][20] = { "朱仕岳","张旭","陈烜","茅志雄","杨涛","李龙生","蔡鸿顺","宋林涛","雷雯雯","郝冰冰" };
    int i;

    for (i = 0; i < 10; i++) {
        strcpy(apeople[i].name, name[i]);
        strcat (name[i],".tet" );
        if ((fp = fopen(name[i], "r")) == NULL) {
            printf("Error!\n");
            exit(0);
        }
        fscanf(fp,"%s %s %s %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score);
        fprintf(fp, "%s  %s  %s  %s", apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score);
        if (fclose(fp)) {
            printf("Can't close the file\n");
            exit(0);
        }
    }
    printf("姓名:    学号:    性别:    班级:    线性代数成绩:    \n"); 
    for (i = 0; i < 10; i++) {
        printf("%-10s%-10s%-10s%-10s %-10s\n", apeople[i].name, apeople[i].number, apeople[i].sex, apeople[i].classs, apeople[i].score);
    }
    return 0;

}

 

运行结果:

 

 

任务四:

试着使用一下system("cls"),system("pause")这两个命令,看看这两个
命令能不能对你的程序起到一些美化的作用。
拓展:上网搜索类似的其他函数,使用并解释他们的作用。

 

system("cls");//清屏,使得界面整洁。

system("pause");//暂停,使程序有阶段的进行。

system("data");//显示使用时间,用作提醒。

system("color ab");//改变界面背景色和字体颜色,color后的a为背景色,b为字体颜色。

(0=黑色 1 = 蓝色 2 = 绿色 3 = 浅绿色 4 = 红色 5 = 紫色 6 = 黄色 7 = 白色 8=灰色 9 = 淡蓝色 A = 淡绿色 B = 淡浅绿 C = 淡红色 D = 淡紫色 E = 淡黄色 F = 亮白色)

system(“ shutdown -s -t ”) ;//电脑关机

 

总结:

1.对fopen,fclose[读取,关闭文件],fscanf,fgets,fgetc...[从文件中读取数据],fprintf,fputs,fputc...[向文件中写入数据]函数的操作使用更加熟练;

2.了解了文件的使用方法和变化;以及对文件的操作有了更深的了解;

3.学习了新的命令:system("cls"),system("pause"),system("data"),system("color ab")并了解了它们的作用和使用方法;

posted @ 2019-12-21 16:02  .余生  阅读(173)  评论(0编辑  收藏  举报