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

C、C++读取空格、回车符函数【getline、cin.get、cin.getline、std::noskipws】

在C++中,读取输入时,默认情况下 cin 会忽略空格和回车符,并将它们作为输入的分隔符。如果你想读取空格或回车符,可以使用以下几种方法:

1. 使用 std::getline

std::getline 可以读取整行输入,包括空格,直到遇到回车符。

#include <iostream>
#include <string>

int main() {
    std::string input;
    std::getline(std::cin, input);  // 读取整行输入,包括空格
    std::cout << "你输入的是: " << input << std::endl;
    return 0;
}

2. 使用 std::cin.get

std::cin.get 可以读取单个字符,包括空格和回车符。

#include <iostream>

int main() {
    char ch;
    std::cin.get(ch);  // 读取单个字符,包括空格和回车符
    std::cout << "你输入的字符是: " << ch << std::endl;
    return 0;
}

3. 使用 std::cin.getline

std::cin.getline 可以读取一行输入,包括空格,直到遇到指定的分隔符(默认是回车符)。

#include <iostream>

int main() {
    char buffer[100];
    std::cin.getline(buffer, 100);  // 读取一行输入,包括空格
    std::cout << "你输入的是: " << buffer << std::endl;
    return 0;
}

4. 使用 std::noskipws

std::noskipws 可以禁用 cin 的默认行为,使其不跳过空格。

#include <iostream>

int main() {
    char ch;
    std::cin >> std::noskipws >> ch;  // 读取单个字符,包括空格
    std::cout << "你输入的字符是: " << ch << std::endl;
    return 0;
}

总结

  • 如果你想读取整行输入,包括空格,使用 std::getline
  • 如果你想读取单个字符,包括空格和回车符,使用 std::cin.getstd::cin >> std::noskipws
  • 如果你想读取一行输入,包括空格,使用 std::cin.getline

根据你的需求选择合适的方法。

http://www.dtcms.com/a/58931.html

相关文章:

  • 仿muduo库实现高并发服务器-面试常见问题
  • C#核心(22)string
  • 从0开始完成基于异步服务器的boost搜索引擎
  • 可重构智能表面(RIS)的全面介绍
  • 渐进稀疏注意力PSA详解及代码复现
  • KMP 算法的 C 语言实现
  • ROS2-话题学习
  • RabbitMQ高级特性--消息确认机制
  • [网络爬虫] 动态网页抓取 — Selenium 入门操作
  • 搞定python之一----开发环境配置
  • AtCoder Beginner Contest 396(ABCDEF)
  • 【LLM】大模型推理、微调显卡挑选一览表
  • 【论文解读】《LIMO: Less is More for Reasoning》
  • PHP的Workerman 和 Java 常驻内存的相似性
  • Java【网络原理】(3)网络编程续
  • 如何避免项目后期盲目加人赶工
  • 机试准备第13天
  • 知识蒸馏综述Knowledge Distillation: A Survey解读
  • 国产算力助力工业智能新范式
  • PyTorch 学习路线
  • 探秘 Netty 通信中的 SslHandler 类:保障网络通信安全的基石
  • 【MySQL】发展起源与核心架构组件详细介绍
  • STL之list的使用(超详解)
  • 【时间序列】Patch:到底是什么?
  • 【极光 Orbit•STC8A-8H】03. 小刀初试:点亮你的LED灯
  • 数字信号处理之信号功率谱计算welch方法(分段加窗平均周期图)、Bartlett方法(周期图)(Python)
  • 以网络形式启动Linux系统后,通过挂载(mount)的方式,将eMMC存储器中旧的根文件系统所在逻辑2分区格式化,并解压新的根文件系统到逻辑2分区
  • 【Linux文件IO】标准IO详情(1)
  • kubernetes——part3-5 核心概念 Service
  • 知识图谱相关的Terse RDF Triple Language 文件格式介绍