读书人

C语言异常

发布时间: 2012-05-12 15:39:31 作者: rapoo

C语言错误。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct sp
{
char pinming[20];
char guige[12];
long shuliang;
float danjia;
};

int main(void)
{
int flag=1;
char pinming[20];
struct sp shangpin;
FILE *fp;
printf("Please input shang pin ming:");
scanf("%s",pinming);
printf("\n");
printf("cha zao qing kuang:\n");
fp=fopen("d:\\sp.txt","rb");
if(fp==NULL)
{
printf("can not open file\n");
exit(1);
}
while(fread(&shangpin,sizeof(struct sp),1,fp)==1)
{
if(strcmp(shangpin.pinming,pinming)==1)
{
printf("%s,%s,%ld,%.2f\n",shangpin.pinming,shangpin.guige,shangpin.shuliang,shangpin.danjia);
flag=0;
}
}
if(flag==1)
{
printf("mei you shangpin xing xi guanyu %s\n",pinming);
}
fclose(fp);
return(0);
}
这是一个打开文件的小程序,目的就是查找一个文件里面的商品信息。
但是那个fread有错,希望高手帮我改进下,我想把文件里面的商品名字放到一个字符串里面,像上面那个程序是错的,那个文件格式是TXT的,文件内容如下
xuebi da 6.00 345
nongfuSQxianchengduo zhongxingA 4.392 57398
xuebi xiao 2.004 4567
xuebi da 6.003 456
如果不知道我说些什么,可以运行下,文件的地址是D盘根目录。
请会的人指点一下。

[解决办法]
数量和单价反了!

while(fread(&shangpin,sizeof(struct sp),1,fp)==1)
===>
while (fscanf(fp, "%s %s %ld %f", shangpin.pinming, shangpin.guige, &dangjia, &shuliang, ) == 4)

读书人网 >C语言

热点推荐