控制台在同一行更新进度
C#代码如下

using System; using System.Threading; class Program { static void Main() { Console.Write("Progress: "); // 循环迭代,模拟进度显示 for (int i = 0; i <= 100; i++) { // 更新控制台中的进度显示 Console.SetCursorPosition(10, Console.CursorTop); Console.Write($"{i}%"); // 模拟一些工作(例如处理任务、计算等待) Thread.Sleep(100); // 清除进度数字之后的部分(可选) ClearRemainingConsoleLine(); } // 所有进度完成后显示结束消息 Console.WriteLine("\nDone!"); } // 清除进度数字之后的方法 static void ClearRemainingConsoleLine() { // 记录当前光标位置 int currentLineCursor = Console.CursorTop; // 将光标移动到进度数字后,清除剩余部分 Console.SetCursorPosition(10, Console.CursorTop); Console.Write(new string(' ', Console.WindowWidth - 10)); // 将光标还原到之前的位置 Console.SetCursorPosition(10, currentLineCursor); } }
在C++控制台中,你可以使用 `std::cout` 来实现在同一行上更新进度。类似于C语言的方法,你同样可以使用转义字符 `\r` 控制光标位置。以下是一个简单的例子:

#include <iostream> #include <thread> // 包含头文件以使用sleep_for函数 int main() { for (int progress = 0; progress <= 100; progress++) { std::cout << "\rProgress: " << progress << "%"; std::cout.flush(); // 刷新输出缓冲区 std::this_thread::sleep_for(std::chrono::milliseconds(100)); // 休眠100毫秒,模拟进度变化 } std::cout << std::endl; // 完成时换行 return 0; }
在这个例子中,`\r` 会将光标移动到行首,然后使用 `std::cout` 输出新的进度信息,并使用 `std::cout.flush()` 刷新输出缓冲区,确保信息立即显示。 `std::this_thread::sleep_for` 函数用于休眠,你可以根据需要调整参数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异