我做了一个管理系统涉及信息保存以及查询 查询功能未运行调试时显示
program ceceived signal SIGSEGV,Segmentation
保存文件是成功的不在这里贴出
编译没有报错
以下是我的此次和问题有关的代码
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
struct N9 //结构体定义
{
char number;
char kind;char Name;char buydate;char fault;char faultdate;
int price;
}s[SIZE],*p=s;
一些其他功能函数本次问题不涉及
int main() //主函数
{
void gotoxy(int x,int y);
void C1();//主菜单
void addC1(struct N9 s[]); //主菜单中1添加设备信息
void changeC1();//修改设备信息
void find_1(struct N9 S[]);//按编号查询
//主菜单+菜单1
C1();
system("cls");//清屏
//addC1(p);//已完成
system("cls");
find_1(p);
//changeC1();//未完成
Sleep(1000);
return 0;
}
位置函数
void gotoxy(int x,int y) //位置函数
{
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
查询功能函数
void find_1(struct N9 S[])//按编号查询
{
system("cls");
gotoxy(4,6);
void load();//从文件中读入N9数据 并查询
printf("\t\t\t|---------------------------------------------|\n");
printf("\t\t\t|-设备查询- |\n");
printf("\t\t\t|---------------------------------------------|\n");
printf("\t\t\t|请输入设备编号: |\n");
load();
}
void load()//读取文件并查询
{
int i;
char H1;
FILE * fp;
if((fp=fopen("N9.dat","rb"))==NULL)
{
printf("cannot open file111\n");
return;
}
for(i=0;i<5;i++)
{
if(fread(&s[i],sizeof(struct N9),1,fp)!=1);//从fp指向的文件读入数据
{ if(feof(fp))//如果读取失败进行提示
{fclose(fp);
printf("file read error !\n");
return;
}
//查询功能
gotoxy(42,9);
getchar();
scanf("%c",&H1);
for(i=0;i<5;i++)
{
if(strcmp(H1,s[i].number)==0)
{
printf("\n\t\t\t|查询到编号为%s的设备:\n",s[i].number);
printf("\t\t\t|设备编号:%s;设备种类:%s;设备名称:%s;设备价格:%d;购入日期:%s",s[i].number,s[i].kind,s[i].Name,s[i].price,s[i].buydate);
return;
}
break;
}
printf("\t\t\t|未找到相关设备信息! |\n");
printf("\n\n\n");
printf("\t\t\t|---------------------------------------------|\n");
fclose(fp);
//
}
}
}