Вам просто нужно рассчитать, какая часть общей длины была прочитана до настоящего времени, и масштабировать до желаемого значения для отображения индикации хода выполнения.
Конечно, это работает, только если у вас есть доступная длина контента, которую выпроверьте свой первый if
.
По сути, это сводится к некоторым базовым математическим упражнениям, которые вы должны выполнять в каждом раунде цикла.
#define PROGRESS_STEPS 10.0
// calculate part of total task in range 0.0..10.0
float progress = (float)total_read / content_length * PROGRESS_STEPS;
// Apply some rounding according to personal preferences
// Print current progress indicator
printf("%d/%d\n", (int) progress, (int) PROGRESS_STEPS);
// Depending on terminal you might add code to use same line for each output.