code blocks在一个.h文件输出中文有乱码,其他没有

太奇怪了,其他.h文件输出的中文没有问题。这个输出就乱码,有解决方法吗?


#ifndef FUN3_H_INCLUDED
#define FUN3_H_INCLUDED
void fun3(struct studentd *p,int n,char flag[25])
{
    struct studentd mid;
    int i,j;
        for(i=0;i<n;i++)
        {
           for(j=i+1;j<n;j++)
           {
               if((p+i)->weight<(p+j)->weight)
               {
                   mid.weight=(p+j)->weight;
                   (p+j)->weight=(p+i)->weight;
                   (p+i)->weight=mid.weight;
               }
           }
        }
        if(strcmp(flag,"1")==0)  //
        {
            for(i=0;i<n;i++)
            {
                printf("%s %.2f\n",(p+i)->name,(p+i)->weight);
            }
        }
        else if(strcmp(flag,"2")==0)
        {
            for(i=0;i<n;i++)
            {
                if(strcmp((p+i)->sex,"m")==0)
                printf("%s %.2f\n",(p+i)->name,(p+i)->weight);
            }
        }
        else if(strcmp(flag,"3")==0)
        {
            for(i=0;i<n;i++)
            {
                if(strcmp((p+i)->sex,"w")==0)
                printf("%s %.2f\n",(p+i)->name,(p+i)->weight);
            }
        }
        else
        {
            printf(" 输入错误 \n 输入任意字母继续 \n");
        }

}



#endif // FUN3_H_INCLUDED

这行printf复制到头文件没有乱码,太奇怪了