C语言文件读取,全部是乱码
代码为:voidRead(){inti,j;FILE*fp;BLbl[50];intz[15];//定义站台数fopen_s(&fp,"公交查询.txt","r+");i...
代码为:
void Read()
{
int i, j;
FILE *fp;
BL bl[50];
int z[15];//定义站台数
fopen_s(&fp, "公交查询.txt", "r+");
if (fp == NULL)
{
printf("不能打开此文件!");
exit(0);
}
for (i = 0; i < 5; i++)
{
fscanf_s(fp, "%d", &bl[i].busnum);
fscanf_s(fp, "%d", &z[i]);
for (j = 0; j < z[i]; j++)
fscanf_s(fp, "%d %s ", &bl[i].stop[j].name);
printf("\n");
fclose(fp);
}
}
文件为:
901
1 abc 2 薛河 3 张小郢 4 晨风苑 5 bcd 6 江淮 展开
void Read()
{
int i, j;
FILE *fp;
BL bl[50];
int z[15];//定义站台数
fopen_s(&fp, "公交查询.txt", "r+");
if (fp == NULL)
{
printf("不能打开此文件!");
exit(0);
}
for (i = 0; i < 5; i++)
{
fscanf_s(fp, "%d", &bl[i].busnum);
fscanf_s(fp, "%d", &z[i]);
for (j = 0; j < z[i]; j++)
fscanf_s(fp, "%d %s ", &bl[i].stop[j].name);
printf("\n");
fclose(fp);
}
}
文件为:
901
1 abc 2 薛河 3 张小郢 4 晨风苑 5 bcd 6 江淮 展开
1个回答
展开全部
fclose(fp);应该放错位置了,,我没完整代码,没测试,你试试看对不对,,你关闭文件过早了,应该在for循环之外 的。
追问
把fclose放在后面了,但是依然是乱码啊
追答
for (i = 0; i < 5; i++)
{
fscanf_s(fp, "%d", &bl[i].busnum); //从你贴的文件内容看只有一个整数
fscanf_s(fp, "%d", &z[i]); // 这条和上面一条共需要两个
for (j = 0; j < z[i]; j++)
fscanf_s(fp, "%d %s ", &bl[i].stop[j].name); //这里 你有一个%d和%s,但是地址只一个
printf("\n");
fclose(fp);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询