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

希望可以帮到疑惑的你!

原文地址:https://www.cnblogs.com/zhibei/p/12061215.html