以下代码显示格式'%s'期望类型为'char *'的参数,但第139行的类型为'int'。我看不到变量类型有任何错误。在scanf上存在此问题。除了这个问题,还有3个相关的问题。我一直在尝试并得到同样的错误。我问是否有人可以帮忙?
这是结构:
class="transition-link"
这是完整的代码:
struct employee
{
char name[50];
char sex;
char adrs[50];
char dsgn[25];
int age,empID;
float slry;
};
答案 0 :(得分:0)
您没有正确遵循格式,即:在打印字符时,您正在使用%s
,例如:在printf("\n%s %s %s %s %d %.2f %d",e.name,e.sex,e.adrs,e.dsgn,e.age,e.slry,e.empID);
中,您正在为%s
使用e.sex
只是一个角色。
并使用%s
多次通过e.sex
来获取类似scanf
的字符输入,例如:scanf("%s %s %s %s %d %.2f %d",e.name,e.sex,e.adrs,e.dsgn,&e.age,&e.slry,&e.empID);
,请改用%c
。
修正这些格式,同时以格式化的方式获取输入和打印输出,请参见。
您可以从printf man page和scanf man page寻求帮助。