请问: 这个程序运行怎么的!前面能运行,后面就不行了!
#include <stdio.h> /*使用printf要包含的头文件*/#include <conio.h> /*使用getch要包含的头文件*/
#define NUM 2
typedef struct /*声明结构体person*/
{
char name[20]; /*姓名信息*/
int age; /*年龄信息*/
char email[50]; /*电子邮件信息*/
}person,person2;
void getInfo(person* pInfo) /*读取用户输入到结构体中*/
{
printf("请输入姓名:");
gets(pInfo->name);
printf("请输入年龄:");
scanf("%d",&pInfo->age);
getchar(); /*从输入缓冲区中抛掉换行符*/
printf("请输入电子邮件:");
gets(pInfo->email);
}
void display(person2 p1) /*显示人员信息的函数*/
{
printf("Name:%s\n",p1.name);
printf("Age:%d\n",p1.age);
printf("Email:%s\n",p1.email);
}
void main(void) /*主函数*/
{
person People[NUM]; /*声明结构体数组People*/
/*声明创建字符数组,用以保存文件位置*/
char FileA[50];
printf("保存在哪个文件?\n"); /*提示用户输入读取位置*/
gets(FileA);
FILE* fpO=NULL; /*声明文件指针fpO,输出用*/
/*以文本只写方式打开FileA指定的文件*/
fpO=fopen(FileA,"wt");
if(fpO==NULL) /*防错处理,判断打开是否成功*/
{
printf("输入文件打开失败,请检查");
exit(0);
}
for(int i=0;i<NUM;i++)
{
getInfo(&People[i]); /*获取用户输入*/
/*将当前person结构体变量占据的一块内存写入文件中*/
if(fwrite(&People[i],sizeof(person),1,fpO)==0)
{
printf("块写入失败");
exit(0);
}
}
printf("块写入成功");
fclose(fpO); /*关闭文件*/
printf("*********************************************************************");
person2 People2[NUM]; /*声明结构体数组People*/
/*声明创建字符数组,用以保存文件位置*/
char FileB[50];
printf("从哪个文件中读取?\n"); /*提示用户输出读取位置*/
gets(FileB);
FILE* fpI=NULL; /*声明文件指针fpO,输出用*/
/*以文本只写方式打开FileA指定的文件*/
fpI=fopen(FileB,"rt");
if(fpI==NULL) /*防错处理,判断打开是否成功*/
{
printf("输出文件打开失败,请检查");
exit(0);
}
for(int j=0;j<NUM;j++)
{
/*从文件中读取内容到people中*/
if(fread(&People2[j],sizeof(person2),1,fpI)==0)
{
printf("块读出失败");
exit(0);
}
}
fclose(fpI); /*关闭文件*/
getch(); /*等待,按任意键结束*/
}