如果用返回的温度值作为实参,这个函数就不执行了,如果我随便输入个整数就可以执行,怎么回事??
创新互联建站提供网站设计、网站建设、网页设计,成都品牌网站建设,一元广告等致力于企业网站建设与公司网站制作,十余年的网站开发和建站经验,助力企业信息化建设,成功案例突破千余家,是您实现网站建设的好选择.
说明还是参数的问题。再仔细看看参数的传递是否正确。包括类型。
还有传递的时候是否是真实数据,还是数据已经被释放。
自己调试着看看吧。
可以使用fseek函数,直接偏移指针的指向位置到第二行。
函数原型
int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
可以使用fgets函数,遇到需要跳过的行时,直接读取该行并弃舍该行字符值。
函数原型
char *fgets(char *buf, int bufsize, FILE *stream);
参数
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明存储数据的大小。
*stream: 文件结构体指针,将要读取的文件流。
中间变量溢出。C语言是一种计算机程序设计语言,因为中间变量溢出导致在主函数定义好另一个函数后跳过运行的,是可以作为系统设计语言,编写工作系统应用程序。
void main()
{
stu stu[N];int len=0,x;
while((x=welcomepage())!=0) //只要不输出0,就一直循环操作
{
switch(x)
{
case 1:initlist(stu,len);break; //选项调用函数
case 2:inputdata(stu,len);break;
case 3:insertdelete(stu,len);break;
case 4:showdata(stu,len);break;
case 5:showall(stu,len);break;
case 6:savedata(stu,len);break;
}
}
}
int welcomepage(void)
{
int x;
printf("\n1.数据库初始化");
printf("\n2.输入数据");
printf("\n3.插入删除数据");
printf("\n4.显示学生信息");
printf("\n5.显示所有信息");
printf("\n6.保存所有信息");
printf("\n0.退出系统");
printf("\n");
scanf("%d",x);
return x;
}