C 我正在尝试读取一个文件,并以%显示读取进度。我尝试了以下代码,但我无法将代码分成块&;显示进步

C 我正在尝试读取一个文件,并以%显示读取进度。我尝试了以下代码,但我无法将代码分成块&;显示进步,c,C,我试图读取一个文件,并以百分比显示读取进度。我已经尝试了下面的代码,但我无法将代码分成几块并显示进度。我应该如何显示进步 printf("File contains %ld bytes!\n", fsize); buf = (char*) malloc (sizeof(char)*fsize); if (buf == NULL) { printf("Memory error!\n"); return 2; } else {

我试图读取一个文件,并以百分比显示读取进度。我已经尝试了下面的代码,但我无法将代码分成几块并显示进度。我应该如何显示进步

    printf("File contains %ld bytes!\n", fsize);

    buf = (char*) malloc (sizeof(char)*fsize);
    if (buf == NULL) {
        printf("Memory error!\n");
        return 2;
    }
    else {
        printf("Allocating memory!\n");

        bytes_read = fread(buf, 1, fsize, pf);

        printf("number of bytes read %1d",bytes_read);

下面是一个粗略的草稿,说明如何替换当前使用的
fread()

size_t numToRead = fsize;
char* bufPtr = &buf[0];
while ( numToRead > 0 )
{
    int percentDone = 0;
    size_t numSuccessful = fread( bufPtr, 1, 10000, pf ); // choose size
    bufPtr += numSuccessful;
    numToRead -= numSuccessful;
    percentDone = ( 100 * ( fsize - numToRead ) / fsize );
    // display percentage as you like
}

免责声明:我没有编译此代码段,因此请原谅拼写错误。

这里没有问题。我将如何通过将其分块显示阅读进度?文件有多大,即fsize的值?文件可以是任何大小的任何文件。但现在假设它是889 mb的文件