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

  • 相关阅读:
    冒泡排序
    选择排序
    1069 微博转发抽奖 (20 分)
    动态规划-石子合并
    动态规划-最长公共子序列
    动态规划-最长上升子序列
    动态规划-数字三角形
    动态规划-分组背包问题
    动态规划-多重背包问题
    动态规划-完全背包问题
  • 原文地址:https://www.cnblogs.com/shaoguangleo/p/2805837.html
Copyright © 2020-2023  润新知