txt--xml

txt->xml

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

typedef struct grades {
	char id[10];
	char name[10];
	char course[10];
	char score[10];
}grade;

int main() {
	FILE *fp1, *fp2;
	char FileBuff[100] = { 0 };
	int i = 0;
	fp1 = fopen("e:\\grades1.txt", "r");
	if (fp1 == NULL) {
		printf("read txt file error!");
		return 0;
	}
	fp2 = fopen("e:\\grades1.xml", "w");
	if (fp2 == NULL) {
		printf("write xml file error!");
		return 0;
	}
	grade *gra;
	gra = (grade*)malloc(3 * sizeof(struct grades));
	for (;i < 3;i++) {
		fscanf(fp1, "%s", gra[i].id);
		fscanf(fp1, "%s", gra[i].name);
		fscanf(fp1, "%s", gra[i].course);
		fscanf(fp1, "%s", gra[i].score);
	}
	for (int m = 0;m < i;m++) {
		for (int n = m + 1;n < i;n++) {
			if (gra[m].score < gra[n].score) {
				grade temp;
				temp = gra[m];
				gra[m] = gra[n];
				gra[n] = temp;
			}
		}
	}
	fprintf(fp2, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
	fprintf(fp2, "<grades>\n");
	int j = 0;
	while (j < i) {
		fprintf(fp2, "<grade>\n");
		fprintf(fp2, "<id>%s</id>\n", gra[j].id);
		fprintf(fp2, "<name>%s</name>\n", gra[j].name);
		fprintf(fp2, "<course>%s</course>\n", gra[j].course);
		fprintf(fp2, "<score>%s</score>\n", gra[j].score);
		fprintf(fp2, "</grade>\n");
		j++;
	}
	fprintf(fp2, "</grades>");
	printf("文件输出成功");
	fclose(fp1);
	fclose(fp2);

	return 0;
}


xml->txt

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

typedef struct grades {
	char id[10];
	char name[10];
	char course[10];
	char score[10];
}grade;

int main() {
	grade *gra;
	FILE *fp1, *fp2;
	char FileBuff[1024] = { 0 };
	char *lfirst, *lend;
	fp1 = fopen("E:\\grades.xml", "r");
	fp2 = fopen("E:\\grades.txt", "w");
	if (fp1 == NULL) {
		printf("read xml file error\n");
		return 0;
	}
	if (fp2 == NULL) {
		printf("write txt file error\n");
		return 0;
	}
	gra = (grade*)malloc(sizeof(struct grades));
	int i = 0;
	while (fgets(FileBuff, 100, fp1)) {
		if ((lfirst = strstr(FileBuff, "<id>")) != NULL)
		{
			lend = strstr(lfirst + 1, "</id>");
			memcpy(gra[i].id, lfirst + 4, lend - lfirst - 4);
			printf("%s\n", gra[i].id);
		}
		if ((lfirst = strstr(FileBuff, "<name>")) != NULL)
		{
			lend = strstr(lfirst + 1, "</name>");
			memcpy(gra[i].name, lfirst + 6, lend - lfirst - 6);
			printf("%s\n", gra[i].name);
		}
		if ((lfirst = strstr(FileBuff, "<course>")) != NULL)
		{
			lend = strstr(lfirst + 1, "</course>");
			memcpy(gra[i].course, lfirst + 8, lend - lfirst - 8);
			printf("%s\n", gra[i].course);
		}
		if ((lfirst = strstr(FileBuff, "<score>")) != NULL)
		{
			lend = strstr(lfirst + 1, "</score>");
			memcpy(gra[i].score, lfirst + 7, lend - lfirst - 7);
			printf("%s\n", gra[i].score);
			i++;
		}

	}

	for (int m = 0;m < i ;m++) {
		for (int n = m + 1;n < i;n++) {
			if (gra[m].score < gra[n].score) {
				grade temp;
				temp = gra[m];
				gra[m] = gra[n];
				gra[n] = temp;
			}
		}
	}
	for (int j = 0;j < i;j++) {
		fprintf(fp2, "学号:%s\n姓名:%s\n课程:%s\n成绩:%s\n", gra[j].id, gra[j].name, gra[j].course, gra[j].score);
		printf("学号:%s\n姓名:%s\n课程:%s\n成绩:%s\n", gra[j].id, gra[j].name, gra[j].course, gra[j].score);
	}
	printf("文件输入成功");
	free(gra);
	fclose(fp1);
	fclose(fp2);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值