C语言文件
任务一:
你现在拥有一个数组,数组中储存着总共10个人的姓名字符串
你需要为每个人创建一个 .txt 文件,以他们的名字命名。
执行代码如下:
#include
#include
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
#include
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
#include
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
头文件下直接调用。
DOS操作命令有很多,以下给大家介绍一些:
- color,设置控制台前景和背景颜色。
例:system(“color 0A”),其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:0=黑色 1==蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
shutdown -s -t 时间 设置关机倒计时
例:system(shutdown -s -t 20) ,该命令的意思就是20s后关机。
类似的命令还有:
shutdown -a 取消关机
shutdown -f 强行关闭应用程序
shutdown -l 注销当前用户
shutdown -r 关机并重启
shutdown -h 休眠
del 位置 删除位置文件
例: system("del d:\帅帅.txt") , 即删除位置在d盘的帅帅文本文件。
当然还有很多很多其他操作命令,这只是大多数中的三个,大家可以根据自己的需要去查找使用。