#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct data { //宣告結構體
char province[20]; //省份
char city[20]; //城市
int count; //數量
};
int main(int argc, char *argv[])
{
int i = 0;
int count = 0;
FILE *fp = NULL; //寫入檔案
struct data d[140];
char p[20]; //當前省份
if (argc != 4)
{
return 1;
}
fp = fopen(argv[1], "r"); //暫時指定打開檔案
if (!fp)
{
printf("打開檔案失敗!\n");//打開檔案失敗
}
while (1)//讀檔案存入結構體陣列
{
if (fscanf(fp, "%s\t%s\t%d", &d[i].province, &d[i].city, &d[i].count) != EOF)
{
i++;
}
else break;
}
count = i;
fclose(fp);
fp = fopen(argv[2], "w"); //暫時指定打開檔案
if (!fp)
{
printf("打開檔案失敗!\n");//打開檔案失敗
}
strcpy(p, d[0].province);
if(strcmp(province, province) == 0) break;
fprintf(fp, "%s\n", p);
fprintf(fp, "%s\t%d\n", d[0].city, d[0].count);
for (i = 1; i < count;i++)
{
if (strcmp(p, d[i].province) == 0) fprintf(fp, "%s\t%d\n", d[i].city, d[i].count);
else
{
strcpy(p, d[i].province);
fprintf(fp, "\n%s\n", p);
fprintf(fp, "%s\t%d\n", d[i].city, d[i].count);
}
}
fclose(fp);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113067.html
標籤:C語言
上一篇:e的近似值
