首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在没有循环的情况下用C++打印人类可读的文件大小

在没有循环的情况下,可以使用递归来实现用C++打印人类可读的文件大小。以下是一个示例代码:

代码语言:txt
复制
#include <iostream>
#include <string>

std::string formatFileSize(double size, int precision = 2) {
    static const char* units[] = {"B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"};
    static const int numUnits = sizeof(units) / sizeof(units[0]);
    
    int i = 0;
    while (size >= 1024 && i < numUnits - 1) {
        size /= 1024;
        i++;
    }
    
    char buffer[20];
    snprintf(buffer, sizeof(buffer), "%.*f %s", precision, size, units[i]);
    
    return buffer;
}

void printHumanReadableFileSize(double size) {
    std::string formattedSize = formatFileSize(size);
    std::cout << "File size: " << formattedSize << std::endl;
}

int main() {
    double fileSize = 1234567890; // 文件大小,单位为字节
    printHumanReadableFileSize(fileSize);
    
    return 0;
}

这段代码定义了两个函数:formatFileSizeprintHumanReadableFileSizeformatFileSize函数将文件大小转换为人类可读的格式,例如将字节数转换为KB、MB、GB等单位。printHumanReadableFileSize函数用于打印人类可读的文件大小。

main函数中,我们定义了一个文件大小fileSize,单位为字节,然后调用printHumanReadableFileSize函数打印人类可读的文件大小。

运行以上代码,输出结果为:

代码语言:txt
复制
File size: 1.15 GB

这样就实现了在没有循环的情况下用C++打印人类可读的文件大小。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券