现在使用C语言编写酒店点菜系统(大一新生项目),从文件里读取字符串对数组进行赋值的时候出现了问题。下面进行单步调试。
疑点:而且明明i还没自增,order[1].price却读到了值,而且是文件里第一行的2
求给上述疑点做出解释,或给出正确的代码。
下面为单步调试的截图
若需要可以发源代码
现在使用C语言编写酒店点菜系统(大一新生项目),从文件里读取字符串对数组进行赋值的时候出现了问题。下面进行单步调试。
疑点:而且明明i还没自增,order[1].price却读到了值,而且是文件里第一行的2
求给上述疑点做出解释,或给出正确的代码。
下面为单步调试的截图
fscanf读取数据的地方不对,如下图所示:
你order中的结构体是怎么定义的? name和price都是char数组吗?没有必要的,price可以用int类型
如果结构体元素都是char数组,读取文件的地方修改如下:
int i = 0;
while(!feof(fp1))
{
fscanf(fp1,"%s%s\n",order[i].name,order[i].price); //注意\n不要漏了,不需要&
if(strcmp(order[i].name,"")!=0) //避免读到空行
i++;
}
如果price用int类型,代码修改如下:
int i = 0;
while(!feof(fp1))
{
fscanf(fp1,"%s%d\n",order[i].name,&order[i].price);
if(strcmp(order[i].name,"")!=0) //避免读到空行
i++;
}