• C 实现 创建多个txt文件,并以自然数列命名,然后将产生的十进制数据写入txt文档


    首先:以自然数列为txt命名。

    这在C++中很容易实现,之间诶to_string(int num)+".txt"就可以,但是在C中没有string,只有char,那怎么办?

    这里需要将自然数转化成 char,准确的说是char数组。代码实现:

    char* Int2String(int num,char *str)//10进制 
    {
        int i = 0;//指示填充str 
        if(num<0)//如果num为负数,将num变正 
        {
            num = -num;
            str[i++] = '-';
        } 
        //转换 
        do
        {
            str[i++] = num%10+48;//取num最低位 字符0~9的ASCII码是48~57;简单来说数字0+48=48,ASCII码对应字符'0' 
            num /= 10;//去掉最低位    
        }while(num);//num不为0继续循环    
        str[i] = '';    
        //确定开始调整的位置 
        int j = 0;
        if(str[0]=='-')//如果有负号,负号不用调整 
        {
            j = 1;//从第二位开始调整 
            ++i;//由于有负号,所以交换的对称轴也要后移1位 
        }
        //对称交换 
        for(;j<i/2;j++)
        {
            //对称交换两端的值 其实就是省下中间变量交换a+b的值:a=a+b;b=a-b;a=a-b; 
            str[j] = str[j] + str[i-1-j];
            str[i-1-j] = str[j] - str[i-1-j];
            str[j] = str[j] - str[i-1-j];
        }     
        return str;//返回转换后的值 
    }

    好了,这一步做好,文件命名就可以解决了。

    下面是将十进制数写入txt,这里要区分两个函数:

    fprintf(fp, "%d", buffer); 是将格式化的数据写入文件
    fprintf(文件指针,格式字符串,输出表列);
    
    fwrite(&buffer, sizeof(int), 1, fp);是以二进位方式写入文件
    fwrite(数据,数据类型大小(字节数),写入数据的最大数量,文件指针);

    fprintf是带格式化的数据写入文件,十进制就是十进制,打印效果和写入文件的效果相同。

    fwrite是自然数是以二进制的方式写入文件,char不变。

    希望可以帮到疑惑的你!

  • 相关阅读:
    django第二个项目使用模板做一个站点访问计数器
    python 从ftp下载数据
    django第一个项目HelloWord
    数据挖掘之KNN分类
    java的函数参数传递
    将数组按照奇偶顺序排列
    win7 64位下安装nltk的问题
    [转]安装androidADT插件长时间停留在calculating requirements and dependencies
    排序算法之插入排序
    非等值折半查找
  • 原文地址:https://www.cnblogs.com/zhibei/p/12061215.html
Copyright © 2020-2023  润新知