• 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不变。

    希望可以帮到疑惑的你!

  • 相关阅读:
    oracle 常用SQL
    ActiveMQ持久化方式
    集中队列的模式
    EDA: Event-Driven Architecture事件驱动架构
    ActiveMQ消息队列介绍
    Nginx 用log_format设置日志格式
    log4j的ConversionPattern参数的格式含义
    真正的轻量级WebService框架——使用JAX-WS(JWS)发布WebService
    Java的注解机制——Spring自动装配的实现原理
    java interface 默认值
  • 原文地址:https://www.cnblogs.com/zhibei/p/12061215.html
Copyright © 2020-2023  润新知