zoukankan      html  css  js  c++  java
  • 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不变。

    希望可以帮到疑惑的你!

  • 相关阅读:
    网络游戏
    嘎嘎
    Failed to install *.apk on device 'emulator-5554': timeout
    安卓开发真机遇到Failed to install Spaceassault.apk on device 'HT1CKV205198': timeout 测试机没有问题
    java匿名内部类
    TextView tv01=(TextView)this.findViewById(R.id.TextView01); tv01.setText("设置文字背景色");
    android 项目中出现红色感叹号的解决方法
    使用block来解决实现switch解决字符串
    oc中的block
    不可变数组或者可变数组进行排序
  • 原文地址:https://www.cnblogs.com/zhibei/p/12061215.html
Copyright © 2011-2022 走看看