当前位置: 首页 > 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

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

相关文章:

  • 仿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 学习路线
  • 烟台网站建设yt/武汉网站开发公司
  • 公司做网站百度还是阿里/代运营公司
  • title:(网站开发)/成都百度seo公司
  • 凤岗网站建设/湖北百度推广电话
  • 陕西网络公司/搜索引擎优化的名词解释
  • 网站头部导航/海外社交媒体营销