新手提问:文件读取问题
110100 北京市 市辖区 (直辖市)
110101 北京市 东城区 (直辖市)
110102 北京市 西城区 (直辖市)
110103 北京市 崇文区 (直辖市)
110104 北京市 宣武区 (直辖市)
110105 北京市 朝阳区 (直辖市)
110106 北京市 丰台区 (直辖市)
110107 北京市 石景山区 (直辖市)
110108 北京市 海淀区 (直辖市)
110109 北京市 门头沟区 (直辖市)
110111 北京市 房山区 (直辖市)
110112 北京市 通州区 (直辖市)
110113 北京市 顺义区 (直辖市)
110221 北京市 昌平县 (直辖市)
110224 北京市 大兴县 (直辖市)
110226 北京市 平谷县 (直辖市)
110227 北京市 怀柔县 (直辖市)
110228 北京市 密云县 (直辖市)
110229 北京市 延庆县 (直辖市)
120100 天津市 市辖区 (直辖市)
120101 天津市 和平区 (直辖市)
120102 天津市 河东区 (直辖市)
120103 天津市 河西区 (直辖市)
120104 天津市 南开区 (直辖市)
文件的内容如上,将这个文件读出,显示在屏幕上,
struct info
{
char num[6];
char city[6];
char qu[8];
char other[10];
}
int main()
{
FILE *fp;
int i;
char num[7];
fp=fopen("ID_data.txt","w");
for(i=0;i<1000;i++)
{
fscanf(fp, "%s%s%s%s", people->num,people->city,people->qu,people->other);//写入文件
puts(stu->place);
printf("第%d条\n",i+1);
printf("%s%s%s%s", people->num,people->city,people->qu,people->other};
fclose(fp);
return 0;
}
这么把文件的内容读到屏幕上,求指点。
[解决办法]
#include<stdio.h>
#include<stdlib.h>
struct info
{
char num[10];//大小分配不当,一个汉字2个Byte
char city[7];
char qu[20];
char other[20];
};
const int linecount = 24;//假设文件共有24行
int main()
{
info P[linecount];
info *people = NULL;
int i;
char num[7];
FILE *fp;
fp=fopen("ID_data.txt","r");//"r"只读
for(i=0;i<linecount;i++)
{
people = &P[i];
fscanf(fp, "%s %s %s %s", &people->num,&people->city,&people->qu,&people->other);//写入文件
printf("第%d条:",i+1);
printf("%s %s %s %s\n", people->num,people->city,people->qu,people->other);
}
fclose(fp);
system("pause");//任意键继续
return 0;
}