当前位置:首页 C++ > 正文

C/C++getline和cin区别

作者:野牛程序员:2023-07-24 14:07:27 C++阅读 2889

getlinecin 是在 C++ 中用于输入数据的两种不同方式。

  1. getline 函数:getline 是一个 C++ 标准库函数,位于 <string> 头文件中。它用于从输入流(如标准输入 std::cin 或文件流)中读取一行文本,并将其存储为一个字符串对象。getline 函数的原型如下:

std::istream& getline(std::istream& is, std::string& str, char delim);

其中,is 是输入流对象,str 是用于存储读取的行的字符串对象,delim 是可选参数,用于指定定界符(默认为换行符 \\n)。该函数会读取从当前位置开始,直到遇到指定的定界符(或文件结束)为止,并将读取的内容存储在字符串对象 str 中。定界符本身不会被包含在结果中。

使用 getline 函数可以方便地读取一整行文本,不受输入中空格的干扰。例如:

#include <iostream>
#include <string>

int main() {
    std::string input;
    std::cout << "Enter a line of text: ";
    std::getline(std::cin, input);
    std::cout << "You entered: " << input << std::endl;
    return 0;
}
  1. cin 对象:cin 是 C++ 中的标准输入流对象,位于 <iostream> 头文件中。它可以用于从用户(或其他输入源)读取不同类型的数据,例如整数、浮点数、字符等。cin 的用法相对简单,可以通过 >> 操作符来连续读取输入,直到遇到空白字符(空格、换行、制表符等)。

使用 cin 读取输入可能需要处理用户输入中空格的情况。例如:

#include <iostream>
#include <string>

int main() {
    std::string input;
    std::cout << "Enter a line of text: ";
    std::cin >> input; // Reads until the first whitespace character
    std::cout << "You entered: " << input << std::endl;
    return 0;
}

请注意,在使用 cin 读取字符串时,它会在遇到空格或其他空白字符时停止读取,因此只能读取空格之前的部分。如果需要读取整行文本,应该使用 getline 函数。

总结:

  • getline 用于读取一整行文本,并存储为字符串对象,不受空格干扰。

  • cin 用于连续读取输入,以空白字符为分隔符,可以用于读取不同类型的数据,但在读取字符串时可能需要注意空格的影响。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击