如何读取多个文件,文件后缀名不一致,不过类似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;
}

posted @ 2010-11-10 15:49  郭—大—侠  阅读(192)  评论(0编辑  收藏  举报