如何读取多个文件,文件后缀名不一致,不过类似source.1 source.2 source.3等
#include <stdio.h>
#include <stdlib.h> //为了使用exit()
char *itoa(int num,char *str,int radix);
int main()
{
int ch;
FILE* fp;
// char fname[50]="scan1.source.2100"; //用于存放文件名
char fname[20]="source.";
char d[10]="2100";
printf("%s/n",fname);
int i;
while(1)
{
int n=0;
n=atoi(d);
n++;
printf("%d/n",n);
itoa(n, d, 10);
char fname[20]="source.";
strcat(fname,d);
printf("Open /" %s /" Success/n",fname);
}
fp=fopen(fname,"r+"); //只供读取
if(fp==NULL) //如果失败了
{
printf("错误!");
exit(1); //中止程序
}
else
// printf("Open /" %s /" Success/n",fname);
//getc()用于在打开文件中获取一个字符
// putchar(ch);
while((ch=getc(fp))!=EOF)
// printf("%x/t",ch);
fclose(fp); //关闭文件
return 0;
}
//////////////////////////////
/* 实现itoa函数的源代码 */
char *itoa(int num,char *str,int radix)
{
/* 索引表 */
char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned unum; /* 中间变量 */
int i=0,j,k;
/* 确定unum的值 */
if(radix==10&&num<0) /* 十进制负数 */
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num; /* 其他情况 */
/* 逆序 */
do
{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='/0';
/* 转换 */
if(str[0]=='-') k=1; /* 十进制负数 */
else k=0;
/* 将原来的“/2”改为“/2.0”,保证当num在16~255之间,radix等于16时,也能得到正确结果 */
for(j=k;j<(i-1)/2.0+k;j++)
{
num=str[j];
str[j]=str[i-j-1+k];
str[i-j-1+k]=num;
}
return str;
}