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

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

时间:2024-10-15 15:48:09浏览次数:3  
标签:std get int cin c++ 用户 终端 include 写法

目录

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()`。

标签:std,get,int,cin,c++,用户,终端,include,写法
From: https://blog.csdn.net/weixin_45037357/article/details/142954002

相关文章

  • Chromium 中HTML5 WebSocket收发消息分析c++(一)
    一、WebSocket前端接口定义:WebSocket 对象提供了用于创建和管理 WebSocket 连接,以及可以通过该连接发送和接收数据的API。使用 WebSocket() 构造函数来构造一个 WebSocket。构造函数WebSocket(url[,protocols])返回一个 WebSocket 对象。常量ConstantValueWeb......
  • Chromium 中HTML5 WebSocket收发消息分析c++(二)
    看下websocket调用过程:基本定义参考上一篇:Chromium中HTML5WebSocket收发消息分析c++(一)-CSDN博客一、前端测试用例 参考:HTML5WebSocket|菜鸟教程(runoob.com) websocket.html文件如下:<!DOCTYPEHTML><html><head><metacharset="utf-8"><title>Web......
  • C++学习路线(十六)
    void类型指针void->空类型void*->空类型指针,只存储地址的值,丢失类型,无法访问,要访问里面的值我们必须对指针进行正确的类型转换,然后再间接引用指针所有其它类型的指针都可以隐式自动转换成void类型指针,反之需要强制转换。intarr[]={1,2,3,4,5};charch......
  • C++学习路线(十四)
    指针的自增操作查看数组与指针的关系#include<iostream>usingnamespacestd;intmain(){ intages[]={18,20,22,25,28}; intlen=sizeof(ages)/sizeof(ages[0]); cout<<"使用数组的方式访问元素"<<endl; for(inti=0;i<len;i++){ co......
  • C++学习路线(十五)
    多级指针#include<iostream>usingnamespacestd;intmain(){ intblock1=888; int*block2=&block1; int**block3=&block2; int***block4=&block3; int****block5=&block4; cout<<"block2:"<<*block2......
  • 音视频终端 SDK应对防火墙限制相关常见问题
    客户端NativeSDK需要配置哪些端口或域名为白名单?防火墙端口如下表所示:TRTCSDK(Native)白名单项目TCP端口443、20166UDP端口8000、8080、8001、8002、8003、8004、8005、8006、8007、8008、8009、16285、9000域名白名单:cloud.tim.qq.comgz.file.myqcloud.......
  • Ubuntu中VSCode配置CC++环境
    我的环境:Ubuntu22.04.5LTSVSCode版本:1.94.2参考文章:https://blog.csdn.net/zimuzi2019/article/details/106861692https://zhuanlan.zhihu.com/p/147366852一、安装gcc/g++和gdbsudoapt-getupdatesudoapt-getinstallgccsudoapt-getinstallg++sudoa......
  • day03(C++)信号槽
    目录1.概念2.函数原型3.连接方式3.1自带信号→自带槽3.2自带信号→自定义槽3.3自定义信号4.信号槽传参5.对应关系5.1一对多5.2多对一信号槽1.概念之前的程序界面只能看,不能交互,信号槽可以让界面进行人机交互。信号槽是Qt在C++基础上新增的......
  • RBE104TC C/C++ Programming Language
    RBE104TCC/C++ProgrammingLanguageAssignment1ContributiontotheOverallMarks30%IssueDateSubmissionDeadline13thOctober2024AssignmentOverview:ThisassignmentisgearedtowardsassessingfundamentalcodingconceptsinC/C++andinitiatingthep......
  • c++基础语法知识
    基础当VS中一个项目下有两个及以上的源文件时,编译会产生错误:main已经在test.obj中定义;找到一个或多个多重定义的符号。**解决办法:**将不需要编译的源文件排除:右键“属性”,将“从生成中排除”选择“是”,保存后再运行需要运行的源文件就可以成功,且被排除的文件右下角有红标......