| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5511 人关注过本帖
标题:帮忙解释下 warning C4024: 'strcpy' : different types for formal and ac ...
只看楼主 加入收藏
张倚川
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-6-11
结帖率:54.55%
收藏
已结贴  问题点数:10 回复次数:6 
帮忙解释下 warning C4024: 'strcpy' : different types for formal and actual parameter
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 100
struct information{
char name[100];
char reason[100];
float money;
}em[100];
typedef struct information STUDENT;
void menu();
void input();
void save(int);
void sort(int n);
void display();
void menu()
{puts("1.input inform");
puts("2.Display inform");
puts("3.Exit");
printf("\n");
}
void mian()
{
    int n,flag;
    char a;
    menu();
    do
    {
        printf("Enter your Choice(1--3):\n");
        scanf("%d",&n);
        if(n>=1&&n<=3)
        {
            flag=1;
            break;
        }
        else
        {
            flag=0;
            printf("your Choice is false,Enter your Choice!");
    }}
    while(flag==0);
    while(flag==1)
    {
        switch(n)
        {
        case 1:input();break;
        case 2:display();break;
        case 3:exit(0);break;
        default:break;}
        scanf("%c",&a);
        if(a=='y')
        {flag=1;
        system("cls");
        menu();
        printf("Enter your Next Choice(1--2):\n");
        scanf("%d",&n);
        printf("\n");
        }
        else
        exit(0);
    }
}

void input()
{int i,m;
printf("Please Enter the number of student(1--100):\n");
scanf("%d",&m);
for(i=0;i<m;i++)
{
    printf("\tname:");scanf("%s",&em[i].name);getchar();
    printf("\treason:");scanf("%s",&em[i].reason);getchar();
    printf("\tmoney:");scanf("%f",&em[i].money);getchar();}
printf("\n 创建完毕!\n");
save(m);main();
}
void save(int m)
{
    int i;
     FILE *fp;
   if((fp=fopen("file1.txt","wb"))==NULL)
    {
        printf("cannot open file\n");
        exit(0);
    }
    for(i=0;i<m;i++)
        if(fwrite(&em[i],sizeof(struct information),1,fp)!=1)
            printf("file write error\n");
            fclose(fp);}
int load()
{
    FILE*fp;
    int i=0;
    if((fp=fopen("file1.txt","rb"))==NULL)
    {
        printf("can't open file1\n");
        exit(0);
    }
    else
    {
        do
        {
            fread(&em[i],sizeof(struct information),1,fp);
            i++;
        }
        while(feof(fp)==0);
    }
    fclose(fp);
    return(i-1);
}
void sort(int n)
{
int i,j,flag;
STUDENT temp;
for(i=0;i<n;i++)
{
flag=0;
for(j=0;j<n-1;j++)
if((strcmp(em[j].name,em[j+1].name))>0)
{
    flag=1;
    strcpy(temp.name,em[j].name);
    strcpy(temp.reason,em[j].reason);
strcpy(temp.money,em[j].money);     
strcpy(em[j].name,em[j+1].name);
strcpy(em[j].reason,em[j+1].reason);
strcpy(em[j].money,em[j+1].money);
strcpy(em[j+1].name,temp.name);
strcpy(em[j+1].reason,temp.reason);
strcpy(em[j+1].money,temp.money);
}
if(flag==0)break;
}
printf("sort sucess!!! \n");
}
void display()
{
    int i;
    int m=load();
    printf("%-5s%-8s%-5f\n","name","reason","money");
        for(i=0;i<m;i++)
            printf("\n%s\t%s\t%f\t\n",em[i].name,em[i].reason,em[i].money);
        getchar();
        main();
}
搜索更多相关主题的帖子: different warning display include actual 
2011-06-22 12:44
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:10 
问题在这里:strcpy(em[j+1].money,temp.money),他的形参类型是 char *
strcpy() 只能用来复制字符串,money 是 float 型的。用 em[j+1].money = temp.money

ps:代码风格比以前好了很多,不过依然有待加强

[ 本帖最后由 voidx 于 2011-6-22 12:51 编辑 ]
2011-06-22 12:49
张倚川
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-6-11
收藏
得分:0 
strcpy(&temp.money,&em[j].money);这样也可以,嘿嘿!但是在连接的是时候会出现LNK2001: unresolved external symbol _main这怎么办啊!悲剧了
2011-06-22 13:07
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
mian

strcpy(&temp.money,&em[j].money);    // 千万不要这么用。具体原因楼主请自行体会
2011-06-22 13:24
张倚川
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-6-11
收藏
得分:0 
回复 4楼 voidx
那我连接的错误怎么搞的呢?
2011-06-22 13:28
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
看 4 楼第一行,仔细看红色部分
2011-06-22 13:34
张倚川
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2011-6-11
收藏
得分:0 
回复 6楼 voidx
谢啦
2011-06-22 13:38
快速回复:帮忙解释下 warning C4024: 'strcpy' : different types for formal a ...
数据加载中...
 
   



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

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