getline() 函数来自哪里?

Where is getline() function coming from?

我刚开始学习 C++。 开始了解头文件和预处理器语句。

我知道 std::cin 和 std::cout 是标准库 IOSTREAM 中声明的 objects/Function。 但是当将输入作为字符串并读取整行时。我们必须使用 getline() 函数,或者至少讲师在视频中使用它。

现在我在互联网上查了一下,大多数网站都显示 getline() 是在 STRING [=22 下定义的=].但问题是即使不包含字符串文件,我的程序也能正常工作。那我缺少什么。?或做错事。如果可以的话,还请解释一下 getline 函数是如何工作的。并且请问使用 namespace std 和 using std:: 之间的实际区别是什么 谢谢

#include <iostream> 

int main() 
{ 
    std::string str; 
  
    std::cout << "Please enter your name: \n"; 
    getline(std::cin, str); 
    std::cout << "Hello, " << str 
         << " welcome to GfG !\n"; 
  
    return 0; 
} 

您必须包含 header <string> 才能使用函数 std::getline。 header <iostream> 是否包含 header <string>.

是实现定义的

在此调用中使用非限定名称getline

getline(std::cin, str);

编译器应用参数相关查找 ADL(第一个参数 std::cin 在命名空间 std:: 中定义)并在命名空间 std:: 中找到相应的名称 std::getline ].