当前位置: 首页 > article >正文

c++中,经常需要用来获取用户输入的写法,或者暂停【防止终端退出】

目录

1. 使用 `cin.get()` 暂停程序

2. 使用 `std::cin.ignore()` 结合 `std::cin.get()` 暂停程序

3. 使用 `system("pause")`(仅限 Windows)

4. 使用循环和 `cin.get()` 结合等待任意输入

5. 使用 `cin >>` 获取用户输入


为了防止终端窗口在程序结束后立即关闭,可以使用一些方法来获取用户输入或暂停程序。

以下是几种常见的方法:

1. 使用 `cin.get()` 暂停程序

这种方法是跨平台的,可以在程序结束前等待用户按下 Enter 键。

#include <iostream>

int main() {
    std::cout << "Press Enter to exit..." << std::endl;
    std::cin.get();  // 等待用户按下 Enter 键
    return 0;
}

2. 使用 `std::cin.ignore()` 结合 `std::cin.get()` 暂停程序

这种方法用于清除输入缓冲区中的多余字符,然后等待用户按下 Enter 键。

#include <iostream>
#include <limits>

int main() {
    std::cout << "Press Enter to exit..." << std::endl;
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    std::cin.get();  // 等待用户按下 Enter 键
    return 0;
}

3. 使用 `system("pause")`(仅限 Windows)

这种方法仅适用于 Windows 操作系统。它会调用系统的 `pause` 命令,在程序结束前等待用户按任意键。

#include <iostream>
#include <cstdlib>  // 包含 system 函数的头文件

int main() {
    std::cout << "Press any key to exit..." << std::endl;
    system("pause");  // 暂停程序,等待用户按任意键
    return 0;
}

4. 使用循环和 `cin.get()` 结合等待任意输入

这种方法等待用户输入任意字符,而不仅仅是 Enter 键。

#include <iostream>
int main() {
    std::cout << "Press any key to exit..." << std::endl;
    std::cin.get();  // 等待用户按下任意键
    return 0;
}

5. 使用 `cin >>` 获取用户输入

这种方法要求用户输入特定的字符或数字,然后程序才会结束。

#include <iostream>

int main() {
    int dummy;
    std::cout << "Please enter any number to exit: ";
    std::cin >> dummy;  // 获取用户输入的数字
    return 0;
}

根据你的具体需求,可以选择上述方法之一来防止终端窗口在程序结束后立即关闭。最常用和跨平台的方法是使用 `std::cin.get()` 或 `std::cin.ignore()` 结合 `std::cin.get()`。


http://www.kler.cn/news/356353.html

相关文章:

  • MySQL中8.0为啥引入索引跳跃扫描(Index Skip Scan)
  • 基于DE1-SOC的My_first_fpga
  • 14.归一化——关键的数据预处理方法
  • 汽车与航空领域的功能安全对比:ISO 26262-6 与 DO-178C 的差异浅析
  • 【分布式微服务云原生】《Redis 大 Key 和热点 Key:问题与解决方案全攻略》
  • Python画笔案例-083 绘制 3D世界坐标轴
  • Gin框架操作指南04:GET绑定
  • Python编程探索:从基础语法到循环结构实践(下)
  • python高级函数详解
  • [含文档+PPT+源码等]精品基于Nodejs实现的微信小程序校园心理健康平台设计与实现
  • Unity性能优化
  • 拓扑学与集合论的关系
  • 除了 Python,还有哪些语言适合做爬虫?
  • 从空口分析经典蓝牙A2DP和AVRCP协议
  • 2012年国赛高教杯数学建模A题葡萄酒的评价解题全过程文档及程序
  • 周末总结(2024/10/19)
  • GDAL+C#实现矢量多边形转栅格
  • ●day 35 动态规划part01
  • 基于PHP+MySQL+Vue的医院预约挂号管理系统
  • ACL与NAT协议