第1个回答 推荐于2016-07-29
#include <stdio.h>
struct data1
{
int slot[3];
int flag;
int ftime[5];
int ltime[5];
char carnumber[7];
};
void main()
{
int i,j,row,col;
FILE *slot;
char ch;
char F1[8][20],F2[8][20],F3[8][20];
struct data1 park[480];
clrscr();//clear screen
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
{
F1[i][j]=' ';
F2[i][j]=' ';
F3[i][j]=' ';
}
}
if ((slot=fopen("parking.txt","r"))==NULL)
{
if ((slot=fopen("parking.txt","w+"))==NULL)
{
printf("Cannot open file!\n");
exit(0);
}
printf("Open file Successful!\n");
}
fseek(slot,0L,SEEK_SET);
for(i=0;i<480;i++)
{
for(j=0;j<3;j++)
{
fscanf(slot,"%d",&park[i].slot[j]);
fseek(slot,1L,SEEK_CUR);
}
fscanf(slot,"%d",&park[i].flag);
if(park[i].flag==0)
{
row=park[i].slot[1];
col=park[i].slot[2];
switch(park[i].slot[0])
{
case 1: F1[row][col]='0';break;
case 2: F2[row][col]='0';break;
case 3: F3[row][col]='0';break;
}
do{ch=getc(slot);}while(ch!='\n');
}
}
printf("The empty slots on F1 are shown as following:\n");
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
printf("%c",F1[i][j]);
printf("\n");
}
printf("The empty slots on F2 are shown as following:\n");
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
printf("%c",F2[i][j]);
printf("\n");
}
printf("The empty slots on F3 are shown as following:\n");
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
printf("%c",F3[i][j]);
printf("\n");
}
if ( fclose(slot)!=0 )
printf("Error closing the file!\n");
exit(0);
}
以上是帮你改好的代码,测试已通过
修改了以下几行的代码:
if ((slot=fopen("parking.txt","r"))==NULL)
{
printf("Cannot open file!\n");
exit();
}
运行出错的原因是parking.txt文件你以只读方式打开,但如果之前parking.txt不存在的话,就无法打开!本回答被提问者采纳
第4个回答 推荐于2016-07-29
#include <stdio.h>
struct data1
{
int slot[3];
int flag;
int ftime[5];
int ltime[5];
char carnumber[7];
};
void main()
{
int i,j,row,col;
FILE *slot;
char ch;
char F1[8][20],F2[8][20],F3[8][20];
struct data1 park[480];
clrscr();//clear screen
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
{
F1[i][j]=' ';
F2[i][j]=' ';
F3[i][j]=' ';
}
}
if ((slot=fopen("parking.txt","r"))==NULL)
{
if ((slot=fopen("parking.txt","w+"))==NULL)
{
printf("Cannot open file!\n");
exit(0);
}
printf("Open file Successful!\n");
}
fseek(slot,0L,SEEK_SET);
for(i=0;i<480;i++)
{
for(j=0;j<3;j++)
{
fscanf(slot,"%d",&park[i].slot[j]);
fseek(slot,1L,SEEK_CUR);
}
fscanf(slot,"%d",&park[i].flag);
if(park[i].flag==0)
{
row=park[i].slot[1];
col=park[i].slot[2];
switch(park[i].slot[0])
{
case 1: F1[row][col]='0';break;
case 2: F2[row][col]='0';break;
case 3: F3[row][col]='0';break;
}
do{ch=getc(slot);}while(ch!='\n');
}
}
printf("The empty slots on F1 are shown as following:\n");
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
printf("%c",F1[i][j]);
printf("\n");
}
printf("The empty slots on F2 are shown as following:\n");
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
printf("%c",F2[i][j]);
printf("\n");
}
printf("The empty slots on F3 are shown as following:\n");
for(i=0;i<8;i++)
{
for(j=0;j<20;j++)
printf("%c",F3[i][j]);
printf("\n");
}
if ( fclose(slot)!=0 )
printf("Error closing the file!\n");
exit(0);
}
以上是帮你改好的代码,测试已通过
修改了以下几行的代码:
if ((slot=fopen("parking.txt","r"))==NULL)
{
printf("Cannot open file!\n");
exit();
}
运行出错的原因是parking.txt文件你以只读方式打开,但如果之前parking.txt不存在的话,就无法打开!本回答被提问者采纳