第三次博客作业

C语言文件

任务一:

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

执行代码如下:

#include<stdio.h>
#include<string.h>

int main() {
	char name[10][100] = { "窝窝","史史","醉醉","帅帅","德德","珂珂","矮矮","霉霉","粒粒","歪歪" };//定义十个字符串作为文件名
	int i;
	FILE* fp;   //定义文件指向指针
	for (i = 0;i < 10;i++) 
	{
		strcat_s(name[i], ".txt");   //在每个文件名后面加.txt后缀,并将文件格式设置为文本文档
		fp = fopen(name[i], "w");    //打开文件,“w”为对文件的操作打开只写。如果不存在则新建,如果存在则清空

		if (fp) {x

			fclose(fp);         //打开文件后一定要记得关闭文件
		}
		else
		{
			printf("无法打开文件\n");    // 打开失败则打印
                        break;
		}
	}
	return 0;
}

运行结果截图:

任务二:

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

代码:

#include<string.h>
#include<stdio.h>

int main() {
	char name[10][100] = { "窝窝","史史","醉醉","帅帅","德德","珂珂","矮矮","霉霉","粒粒","歪歪" };
	int i;

	char number[10][100];    //定义二维数组存储学号
	char sex[10][100];       //定义二维数组存储性别
	char classnumber[10][100];    //定义二维数组存储班级
	char score[10][100];       //定义二维数组存储分数
	FILE* fp;
	for (i = 0;i < 10;i++)
	{
		strcat_s(name[i], ".txt");               //在每个名字字符串后面加.txt后缀
		fp = fopen(name[i], "w");                //打开文件
		if (fp)                                  //如果打开文件成功,对文件进行信息输入   
		{
			printf("请输入学生%s的学号:     ", name[i]);
			scanf("%s", &number[i]);
			printf("请输入学生%s的性别:     ", name[i]);
			scanf("%s", &sex[i]);
			printf("请输入学生%s的班级:     ", name[i]);
			scanf("%s", &classnumber[i]);
			printf("请输入学生%s的线代成绩: ", name[i]);
			scanf("%s", &score[i]);
			fputs(number[i], fp);
			fprintf(fp, "  ");
			fputs(sex[i], fp);
			fprintf(fp, "  ");
			fputs(classnumber[i], fp);
			fprintf(fp, "  ");
			fputs(score[i], fp);
			printf("**************************************\n");
			fclose(fp);                  //一定要记得关闭文件
		}
		else
		{
			printf("无法打开文件\n");
                        break;     //打开文件失败则提示打开失败,并结束
		}
	}
	return 0;
}

运行截图:

任务三:

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

#include<stdio.h>
#include<string.h>

struct {                                   //用结构体存储学生的信息:姓名,学号,性别,班级,成绩
	char NAME[100];
	char number[100];
	char sex[100];
	char classnumber[100];
	char score[100];
}student[10];
int main() {
	char name[10][100] = { "窝窝","史史","醉醉","帅帅","德德","珂珂","矮矮","霉霉","粒粒","歪歪" };
	int i;
	FILE* fp;
	for (i = 0;i < 10;i++) 
	{
		strcpy(student[i].NAME, name[i]);      //将存储学生名字复制进结构体中
		strcat_s(name[i], ".txt");
		fp = fopen(name[i], "r");             //打开文件
		if (fp) {
			fscanf(fp, "%s %s %s %s", student[i].number, student[i].sex, student[i].classnumber, student[i].score); //将文件内容读出来放进结构体中
			fclose(fp);    //关闭文件
		}
		else
		{
			printf("无法打开文件\n");        //安全检测,打开失败则报告
			break;
		}
	}
	for (i = 0;i < 10;i++) {
		printf("%s %s %s %s %s\n\n", student[i].NAME, student[i].number, student[i].sex, student[i].classnumber, student[i].score);    //打印学生信息
	}
	return 0;
}


运行截图:

任务四:

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

在任务二中,加入了

system("cls");//清屏命令 ,实现清屏操作
system("pause");//可以实现冻结屏幕,便于观察程序的执行结果

两个系统命令的使用,插入位置如图所示:

运行结果:

使用后:

使用前:

两者对比,明显系统命令

system("cls");
system("pause");

使界面变得更加简单明了。

system()函数,功能为发出一个DOS命令,在

#include<stdilb.h>

头文件下直接调用。

DOS操作命令有很多,以下给大家介绍一些:

  1. color,设置控制台前景和背景颜色。

例:system(“color 0A”),其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:0=黑色 1==蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色

  1. shutdown -s -t 时间 设置关机倒计时

    例:system(shutdown -s -t 20) ,该命令的意思就是20s后关机。

    类似的命令还有:

    shutdown -a 取消关机

    shutdown -f 强行关闭应用程序

    shutdown -l 注销当前用户

    shutdown -r 关机并重启

    shutdown -h 休眠

  2. del 位置 删除位置文件

    例: system("del d:\帅帅.txt") , 即删除位置在d盘的帅帅文本文件。

    当然还有很多很多其他操作命令,这只是大多数中的三个,大家可以根据自己的需要去查找使用。

posted @ 2019-12-20 23:49  AJAJAJAJAJAJ  阅读(328)  评论(0编辑  收藏  举报