C++ getline()2025 年 8 月 29 日 | 6 分钟阅读 在 C++ 中,getline() 是一个定义在 <string> 头文件中的内置函数,它允许从输入流中读取一整行文本。cin 是一个用于从用户处获取输入的对象,但它不允许接收多行输入。 我们使用 getline() 函数来接收多行输入。它能够读取一整行,包括空白字符,这使其成为处理 C++ 中更复杂输入场景的强大工具。 getline() 函数的语法1. 第一种声明方式是传递三个参数。 以上语法包含三个参数,即 is、str 和 delim。 其中, is: 它是 istream 类的对象,定义了从何处读取输入流。 str: 它是一个字符串对象,用于存储字符串。 delim: 它是分隔字符。 返回值 此函数返回作为参数传递给函数的输入流对象。 2. 第二种声明方式是传递两个参数。 以上语法包含两个参数,即 is 和 str。此语法与上述语法几乎相似;唯一的区别是它没有任何分隔字符。 其中, is: 它是 istream 类的对象,定义了从何处读取输入流。 str: 它是一个字符串对象,用于存储字符串。 返回值 此函数也返回作为参数传递给函数的输入流。 C++ getline() 函数示例让我们看一个简单的例子,在不使用 getline() 函数的情况下获取用户输入。 示例编译并运行输出 Enter your name : John Miller Hello John 说明 在这个例子中,我们使用 cin>>name 语句来获取用户输入,即我们没有使用 getline() 函数。之后,我们输入了'John Miller'作为用户输入,但只显示了'John'。因此,我们得出结论,cin 在遇到空格字符时不会考虑其后的字符。 让我们通过使用 getline() 函数来解决上述问题。 示例编译并运行输出 Enter your name : John Miller Hello John Miller 说明 在上面的代码中,我们使用了 getline() 函数来接收字符,即使遇到空格字符也能接收。之后,我们可以观察到两个单词,即 John 和 Miller,都显示出来了,这意味着 getline() 函数也考虑了空格字符后面的字符。 在 C++ 中使用带分隔符的 getline() 在空格处停止输入示例编译并运行输出 Enter your profile : Software Developer The profile is: Software 说明 在上面的代码中,我们使用 getline() 函数获取用户输入,但这次我们还在第三个参数中添加了分隔字符('')。这里,分隔字符是一个空格字符,这意味着出现在空格后的字符将不会被考虑。 使用带有两个参数的 C++ getline()在 C++ 中,默认情况下,getline() 函数会一直读取直到遇到换行符 (\n)。它将输入存储在给定的字符串中。这是 getline() 最常用的形式,当我们只想读取整行文本时。 语法 它具有以下语法: 使用两个参数的 C++ Getline () 函数示例示例编译并运行输出 Enter your full name: John Smith Hello, John Smith! 说明 在这个例子中,它要求用户输入他们的全名。之后,getline(cin, full_name) 函数读取完整的输入,包括空格(例如,“Alice Johnson”)。最后,它使用用户的全名向用户问好。 使用带有三个参数的 C++ getline()三参数版本的 Getline() 允许我们除了默认的换行符 (\n) 外,再指定一个自定义的分隔符。当数据字段由特殊字符(如逗号、分号或竖线)分隔时,这非常有用。 语法 它具有以下语法: 使用三个参数的 C++ Getline () 函数示例示例编译并运行输出 Enter some text ending with a '#': Hello World, this is C++ Getline # You entered: Hello World, this is C++ Getline 说明 这个 C++ 程序会一直读取输入,直到遇到 # 字符。# 不会包含在存储的字符串中。 Getline 字符数组我们也可以为字符数组定义 getline() 函数,但其语法与前面的不同。 语法 它具有以下语法: 在上面的语法中,有两个参数:一个是 char*,另一个是 size。 其中,
C++ Getline 字符数组示例示例编译并运行输出 Enter your favourite fruit: Watermelon Your favorite fruit is Watermelon C++ Getline 用于字符数组和超出字符限制示例编译并运行输出 Enter a string: HelloWorldAgain You entered: HelloWorld 说明 cin.getline(str, 10) 函数最多读取9个字符,并自动在末尾追加一个空字符 (\0)。如果输入超过限制,多余的字符会留在输入缓冲区中,只有允许的字符被存储。 结论总之,C++ 中的 getline() 函数是一个重要的工具,当你需要读取整行输入时,包括空格,无论是在 std::string 中还是在字符数组中。它首先解决了 cin 在空白符处停止的限制。 C++ Getline() 函数多项选择题1. getline() 函数在 C++ 中主要做什么?
答案: c) 读取一整行直到换行符 2. getline() 解决了 cin 的哪个主要限制?
答案: b) 读取带空格的输入 3. 使用 getline() 时,如果调用它之前输入流中已包含一个换行符,会发生什么?
答案: c) 它会立即读取一个空字符串 4. 如果我们在 getline() 中指定一个分隔符会发生什么?
答案: b) Getline() 在遇到该分隔符时会停止读取 5. 以下哪项最能描述 getline() 在处理字符数组时的行为?
答案: c) 它会读取直到指定的大小或遇到分隔符 下一主题C++ STL |
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India