【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符

简介: 【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符

string 类型的输入操作符和 getline 函数分别如何处理空白字符

一、输入操作符 >>

  • 当使用 >> 操作符从标准输入流 std::cin 读取到 std::string 类型的变量时,它会读取字符直到遇到任何空白字符。空白字符包括空格、制表符、换行符等。
  • 一旦遇到空白字符,>> 操作符就会停止读取,并丢弃这个空白字符(不会将其存储在字符串中)。
  • 这意味着,如果连续输入多个空白字符,>> 操作符只会读取到第一个空白字符之前的内容,并将其余的空白字符忽略。

二、getline 函数

  • getline 函数用于从输入流中读取一行文本,直到遇到换行符 \n。
  • 与 >> 操作符不同,getline 函数会读取包括空白字符在内的所有字符,直到遇到换行符。
  • 当 getline 遇到换行符时,它会将换行符丢掉。

三、测试代码

#include <iostream>
#include <string>

int main() {
    std::string word;
    std::cout << "Enter a word (use space to end): ";
    std::cin >> word; // 读取单词直到遇到空白字符
    std::cout << "You entered: " << word << std::endl;

    std::getline(std::cin, word); // 读取换行符

    std::string line;
    std::cout << "Enter a line (end with Enter): ";
    std::getline(std::cin, line); // 读取一行,包括空白字符
    std::cout << "You entered: " << line << std::endl;

    return 0;
}
相关文章
|
5天前
|
索引
Sass String(字符串) 函数
Sass String(字符串) 函数用于处理字符串并获取相关信息。
14 1
|
10天前
|
编译器 C++
【C++核心】函数的应用和提高详解
这篇文章详细讲解了C++函数的定义、调用、值传递、常见样式、声明、分文件编写以及函数提高的内容,包括函数默认参数、占位参数、重载等高级用法。
14 3
|
8天前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
2月前
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
17 1
|
1月前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
2月前
|
存储 Java 编译器
String能存储多少个字符
String能存储多少个字符
|
2月前
|
存储 C++
C++ dll 传 string 类 问题
C++ dll 传 string 类 问题
21 0
|
2月前
|
存储 NoSQL 索引
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
MPP架构数据仓库使用问题之在ORC文件中,String类型字段是怎么进行编码的
|
2月前
|
开发工具 数据安全/隐私保护
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
【Azure Developer】使用MSAL4J 与 ADAL4J 的SDK时候,遇见了类型冲突问题 "java.util.Collections$SingletonList cannot be cast to java.lang.String"
|
17天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
60 30