| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 772 人关注过本帖
标题:提取结构体中的数据出错.
取消只看楼主 加入收藏
youc
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-5-5
收藏
 问题点数:0 回复次数:3 
提取结构体中的数据出错.

有下面这段代码,是输入提取结构体中的数据,可是老提示 [Warning] passing arg 1 of `strcmp' makes pointer from integer without a cast 请哪位大虾帮忙
#include<stdio.h>
#include<string.h>

char line_name;
float line_A;
float line_d;
double line_Tp;
float line_G;
float line_E;
double line_alf;
/******** 导线参数表************/
struct pick
{ char name[12];
float line_A;
float line_d;
double line_Tp;
float line_G;
float line_E;
double line_alf;
}pick_lin[5]={{"GJ-35" ,37.15 ,7.8 ,45472,318.2,181423,11.5e-6},
{"GJ-50" ,49.46 ,9.0 ,53317.9,423.7,181423,11.5e-6},
{"LGJ-70/10" ,79.39 ,11.4 ,23390,275.2,79000 ,19.1e-6},
{"LGJ-70/40" ,110.40,13.60,58300,511.3,105000,15.3e-6},

};
/*导线选取函数 */
void fun_picklin(struct pick *p)
{
char ch;
int i,j;
printf("\n");
printf("/*------请输入计算导线型号(如GJ-50或LGJ-120/20): ");
scanf("%s",ch);
for(i=0,j=0;i<=30;i++)
{ if(strcmp(ch,p[i].name)==0)
{ line_name=ch;
line_A=p[i].line_A;
line_d=p[i].line_d;
line_Tp=p[i].line_Tp;
line_G=p[i].line_G;
line_E=p[i].line_E;
line_alf=p[i].line_alf;
j=1;
}
}
if(j==0) printf("\n没有找到你所输入的导线型号\n");
printf("%s,%f,%f,%f,%f,%f,%f",line_name,line_A,line_d,line_Tp,line_G,line_E,line_alf);
}
int main(void)
{ fun_picklin(pick_lin);
return 0;
}

搜索更多相关主题的帖子: 结构体中 line float 数据 double 
2007-05-01 23:35
youc
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-5-5
收藏
得分:0 

谢谢楼上的指点。
我进行了以下更正:(1),char *ch;(2)char *line_name;
这样编译也通过了,可是一运行还是提示“系统发生了一个重大问题”,我想问题还是出在 int strcmp(char*,char*);在这里怎么把第二个p[i].name也变为char*的形式呢。还请多指教,谢谢


QQ:53469192 交个朋友!!!!
2007-05-02 08:44
youc
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-5-5
收藏
得分:0 

以上的错误更改后,还是不行,再帮忙看看吧。谢谢
#include<stdio.h>
#include<string.h>

char *line_name;
float line_A;
float line_d;
double line_Tp;
float line_G;
float line_E;
double line_alf;
/******** 导线参数表************/
struct pick
{ char name[12];
float line_A;
float line_d;
double line_Tp;
float line_G;
float line_E;
double line_alf;
}pick_lin[5]={{"GJ-35" ,37.15 ,7.8 ,45472,318.2,181423,11.5e-6},
{"GJ-50" ,49.46 ,9.0 ,53317.9,423.7,181423,11.5e-6},
{"LGJ-70/10" ,79.39 ,11.4 ,23390,275.2,79000 ,19.1e-6},
{"LGJ-70/40" ,110.40,13.60,58300,511.3,105000,15.3e-6},

};
/*导线选取函数 */
void fun_picklin(struct pick *p)
{
char *ch;
int i,j;
printf("\n");
printf("/*------请输入计算导线型号(如GJ-50或LGJ-120/20): ");
scanf("%s",ch);
for(i=0,j=0;i<=5;i++)
{ if(strcmp(ch,p[i].name)==0)
{ strcpy(line_name,ch);
line_A=p[i].line_A;
line_d=p[i].line_d;
line_Tp=p[i].line_Tp;
line_G=p[i].line_G;
line_E=p[i].line_E;
line_alf=p[i].line_alf;
j=1;
break;
}
}
if(j==0) printf("\n没有找到你所输入的导线型号\n");
printf("%s,%f,%f,%f,%f,%f,%f",line_name,line_A,line_d,line_Tp,line_G,line_E,line_alf);
}
int main(void)
{ fun_picklin(pick_lin);
return 0;
}


QQ:53469192 交个朋友!!!!
2007-05-02 09:24
youc
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-5-5
收藏
得分:0 
真是太感谢了,问题解决了。再次感谢

QQ:53469192 交个朋友!!!!
2007-05-02 09:56
快速回复:提取结构体中的数据出错.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035658 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved