📜  getline 与 cin.getline - C++ (1)

📅  最后修改于: 2023-12-03 15:30:53.990000             🧑  作者: Mango

getline 与 cin.getline - C++

在 C++ 中,getlinecin.getline 都是用于从输入流中读取字符串的函数。

getline

getline 是 C++ 中 istream 类的成员函数,它可以从输入流中读取一行字符串,直到遇到换行符或者文件结束符(EOF)。

#include <iostream>
#include <string>

int main() {
    std::string line;
    std::getline(std::cin, line);
    std::cout << "You entered: " << line << std::endl;
    return 0;
}

上面的代码读取了一行输入,并将其存储在 line 变量中,然后输出该变量的值。

cin.getline

cin.getline 是 C++ 中 istream 类的另一个成员函数,它可以从输入流中读取一行字符串,但是和 getline 不同的是,cin.getline 需要指定读取的最大字符数,而且换行符不会被读取。

#include <iostream>

int main() {
    char line[256];
    std::cin.getline(line, 256);
    std::cout << "You entered: " << line << std::endl;
    return 0;
}

上面的代码使用了一个字符数组 line 来存储读取的字符串,cin.getline 函数读取了最多 255 个字符,然后将其存储在 line 数组中,并在其末尾添加了一个字符串结束符 \0。最后,输出 line 数组中存储的字符串。

总结

getlinecin.getline 是两个用于读取字符串的函数,功能类似但用法略有区别。根据情况选择使用哪一个函数,可以更加方便地读取输入流中的字符串。


附:本文的代码片段已按 markdown 标明。

#include <iostream>
#include <string>

int main() {
    std::string line;
    std::getline(std::cin, line);
    std::cout << "You entered: " << line << std::endl;
    return 0;
}
#include <iostream>

int main() {
    char line[256];
    std::cin.getline(line, 256);
    std::cout << "You entered: " << line << std::endl;
    return 0;
}