C语言小问题,有提示的

#include<stdio.h>voidyy(chara,intb);structaa{intnum;charname[10];intcj;}boy[10];intma... #include<stdio.h>
void yy(char a,int b);
struct aa
{
int num;
char name[10];
int cj;
}boy[10];
int main()
{
FILE *p;
int i;
yy('=',50);
for(i=0;i<2;i++)
{
boy[i].num=i+1;
printf("input num %d name\n",i+1);
scanf("%s",boy[i].name);
printf("input cj\n");
scanf("%d",&boy[i].cj);
}
if((p=fopen("ccc","wa"))==NULL)
{
printf("open file error!!\n");
return(0);
}
yy('=',50);
printf("学号\t姓名\t成绩\n");
for(i=0;i<2;i++)
{
fprintf(p,yy('=',50));----------------------------这条语句不能把内容录入到文本中
printf("%d\t%s\t%d\n",boy[i].num,boy[i].name,boy[i].cj);
fprintf(p,"%d\t%s\t%d\n",boy[i].num,boy[i].name,boy[i].cj);

}
fclose(p);
getchar();
}
void yy (char a,int b)
{
int i=0;
while(i!=b)
{
printf("%c",a);
i++;
}
printf("\n");
}

我编译的时候有警告,这是什么意思:
gcc -Wall max.c
max.c: In function ‘main’:
max.c:31: error: invalid use of void expression
展开
 我来答
lilaosi2001
推荐于2017-09-16 · TA获得超过823个赞
知道小有建树答主
回答量:296
采纳率:0%
帮助的人:361万
展开全部
我帮你把程序修改了,你自己试下吧,你原来的fprintf的用法有无,你去自己看下man文档,我帮你改了下程序,如下:
#include<stdio.h>
void yy(char a,int b);
void yy(FILE* p, char a, int b);
struct aa
{
int num;
char name[10];
int cj;
}boy[10];
int main()
{
FILE *p;
int i;
yy('=',50);
for(i=0;i<2;i++)
{
boy[i].num=i+1;
printf("input num %d name\n",i+1);
scanf("%s",boy[i].name);
printf("input cj\n");
scanf("%d",&boy[i].cj);
}
if((p=fopen("ccc","wa"))==NULL)
{
printf("open file error!!\n");
return(0);
}
yy('=',50);
printf("学号\t姓名\t成绩\n");
for(i=0;i<2;i++)
{
//fprintf(p,yy('=',50));----------------------------这条语句不能把内容录入到文本中
yy(p,'=',50);
printf("%d\t%s\t%d\n",boy[i].num,boy[i].name,boy[i].cj);
fprintf(p,"%d\t%s\t%d\n",boy[i].num,boy[i].name,boy[i].cj);

}
fclose(p);
getchar();
}
void yy (char a,int b)
{
int i=0;
while(i!=b)
{
printf("%c",a);
i++;
}
printf("\n");
}
void yy (FILE* p, char a, int b)
{
int i=0;
while(i!=b)
{
fprintf(p,"%c",a);
i++;
}
fprintf("\n");
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
efanlove
2011-02-01 · TA获得超过270个赞
知道小有建树答主
回答量:335
采纳率:0%
帮助的人:303万
展开全部
fprintf(p,yy('=',50));----------------------------这条语句不能把内容录入到文本中
这个语句有问题,由于你的yy函数定议为void yy (char a,int b)是个空数型,也就不会返回值,所以他不能用来做为fprintf的实际参数,error: invalid use of void expression 这个错误就是说你无效的使用了void (空类型)表达式.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
007lxa
2011-02-01 · 超过22用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:74.2万
展开全部
yy('=',50)是把字符输出到显示屏,本身返回值是void的,跟fprintf毫无瓜葛,
你把它作为参数,当然错误了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wywgk
2011-02-01 · 超过12用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:34.6万
展开全部
main函数是INT型的,在函数最后没有返回值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式