要求:
将键盘输入改为从文件输入
显示输出改为输出到文件
输入文件可以扩展到更多选手或应用
谢谢大佬呜呜呜
#include<stdio.h>
struct power{
bool microphone;
bool memory;
bool camera;
bool position;
bool wifi;
};
int main(){
struct power a[10]={ {0,1,1,1,0},{1,0,1,1,0},{0,1,1,0,0},{1,1,1,1,1},{0,0,0,0,0} };
printf("设备权限情况 microphone memory camera position wifi (1为开放,0为禁止)\n");
for(int i=0;i<5;i++){
printf("设备%d %d %d %d %d %d\n",i+1,a[i].microphone,a[i].memory,a[i].camera,a[i].position,a[i].wifi);
}
}
文件读写在一起了,先把你的a[10]里面的内容写入a.txt,然后从a.txt中读取出来,并在终端显示了一下(验证读取是否正确)。代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <stdlib.h>
struct power{
bool microphone;
bool memory;
bool camera;
bool position;
bool wifi;
};
int main(){
struct power a[10]={ {0,1,1,1,0},{1,0,1,1,0},{0,1,1,0,0},{1,1,1,1,1},{0,0,0,0,0} };
int rows = 0,tmp,size = 10;
int i = 0;
struct power* arr = (struct power*)malloc(size * sizeof(struct power));
FILE* fp = 0;
//写入文件
if (!(fp = fopen("a.txt","w")))
{
printf("文件打开失败\n");
return 0;
}
for (i = 0; i < 5; i++)
{
fprintf(fp,"设备%d:%5d%5d%5d%5d\n",i+1,a[i].microphone,a[i].memory,a[i].camera,a[i].position,a[i].wifi);
}
fclose(fp);
fp = 0;
//从文件读入
if (!(fp = fopen("a.txt","r")))
{
printf("文件打开失败\n");
return 0;
}
//读取文件
while(!feof(fp))
{
if (rows == size)
{
size *= 2; //空间扩充
arr = (struct power*)realloc(arr,size* sizeof(struct power));
}
fscanf(fp,"设备%d:%5d%5d%5d%5d\n",&tmp,&arr[rows].microphone,&arr[rows].memory,&arr[rows].camera,&arr[rows].position,&arr[rows].wifi);
rows++;
}
fclose(fp);
//打印一下,验证读取是否正确
for (i = 0; i < rows; i++)
{
printf("设备%d:%5d%5d%5d%5d\n",i+1,a[i].microphone,a[i].memory,a[i].camera,a[i].position,a[i].wifi);
}
free(arr);
return 0;
}