跳至正文
View Categories

< 1 min read

主要内容 #

示例程序 #

请运行,并描述一下你看到的现象。

#include < cstdio >
int main()
{
    printf("\r%s", "白日依山尽"); 
    printf("\r%s", "黄河入海流"); 
    printf("\r%s", "欲穷千里目"); 
    printf("\r%s", "更上一层楼"); 
    return 0;
}

最后应该只有一行输出:更上一层楼

解释 #

\r 是将后续的输出位置,移动到行首。

请你们运行验证一下,最终结果是否为 123de

习题 #

【题目描述】
模拟输出文件的下载进度。假设每 100 毫秒,进度加一。
输出进度为整数,格式为右对齐,长度为 3 位。

【输出样例】
输出只能占据窗口第一行。当前的输出,应该覆盖上一次的输出结果。这是一个动态显示的过程。
|| 0%
|=>| 10%
|==>| 20%
|==========|100%

/*
 请完成后,查看示例程序
 



*/

示例程序:

#include < cstdio >
#include < Windows.h >
int main()
{
    printf("||%3d%%", 0);
    for(int i=0; i < 100; ++i) 
    {
        Sleep(100);
        if(i%10 == 0)
        {
            printf("\r|");
            for(int k(0); k < i/10; ++k)
                printf("=");
                
            printf(">|%3d%%", i);
        }
            
    }
    
    printf("\r|==========|%3d%%", 100);
        
    return 0;
}

课后练习