刚才没看到"每个数字",改了下,记得输入文件名字的时候后缀名也要写入: #include #include void main() { FILE *fp; int i,j,num[10]={0},other=0; char *pBuf,filename[20]; printf("请输入要打开的文件名:\n"); scanf("%s",filename); if((fp=fopen(filename,"rb"))==NULL) { printf("无法打开文件,请注意输入后缀!\n"); exit(0); } fseek(fp,0,SEEK_END); int len=ftell(fp); pBuf=new char[len+1]; rewind(fp); fread(pBuf,1,len,fp); pBuf[len]=0; printf("%s\n",pBuf); fclose(fp); for(i=0;pBuf[i];i++) if(pBuf[i]>='0' && pBuf[i]<='9') { for(j=0;j<10;j++) if((pBuf[i]-'0'-j)==0) num[j]++; } else other++; for(i=0;i<10;i++) printf("数字%d有%d个\n",i,num[i]); printf("其它字符%d个\n",other); }