C语言文件的输入输出

要求:

将键盘输入改为从文件输入

显示输出改为输出到文件

输入文件可以扩展到更多选手或应用

谢谢大佬呜呜呜

#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;
}