这是我的一个实验报告的内容:
#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp;
int hang,da,xi,shu,qt;
int count_file(FILE *fp,int *da,int *xi,int *shu,int *qt);
if((fp = fopen("a.txt","r")) == NULL)
{
printf("不能打开文件!\n");
exit(0);
}
hang=count_file(fp,&da,&xi,&shu,&qt);
fclose(fp);
printf("行数为:%d\n",hang);
printf("大写字母个数为:%d\n",da);
printf("小写字母个数为:%d\n",xi);
printf("数字个数为:%d\n",shu);
printf("其他字符个数为:%d\n",qt);
return 0;
}
int count_file(FILE *fp,int *da,int *xi,int *shu,int *qt)
{
int hang;
char ch;
hang=0,*da=0,*xi=0,*shu=0,*qt=0;
while(!feof(fp))
{
if((ch=fgetc(fp)) == EOF) break;
if(ch=='\n') hang++;
else if(ch>='A' && ch<='Z') *da=*da+1;
else if(ch>='a' && ch<='z') *xi=*xi+1;
else if(ch>='0' && ch<='9') *shu=*shu+1;
else *qt=*qt+1;
}
return hang+1;
}
但是我不明白的是为什么我在定义 count_file函数的时候是int型,也是用的int定义的hang。
但如果我把count_file(FILE *fp,int *da,int *xi,int *shu,int *qt)改成count_file(FILE *fp,int da,int x,int shu,int qt).
在hang=count_file 这一行就会报c4707的警告.为什么函数的形参会影响这个呢?求大神解答!