C ++ | getline()用法并在特定字符处停止输入?

时间:2018-08-19 17:38:16

标签: c++ visual-studio visual-c++

这可能有一个特定的答案,但是我试图通过使getline()函数停在“”位置来对其进行测试。例如,这样我就可以向自己保证我正确使用了它。查看在线语法的预期方式如下

  

语法1:   istream&getline(istream&is,string&str,char delim);

     

是:它是istream类的对象,并告诉函数有关流的信息   从哪里读取输入。

     

str:这是一个字符串对象,输入是从流中读取后存储在该对象中的。

     

delim:是分隔字符,它告诉函数在到达该字符后停止读取更多输入。

但是,当我尝试在代码中测试此小型库函数时,它会引发异常,说明如下:

为什么说明它已超载? 还是我在雷达下错过了一些很小的东西?

1 个答案:

答案 0 :(得分:-1)

std::getline有两个重载,一个具有2个参数(类型为istream&is和字符串&str),另一个是您列出的参数。您的错误是第三个参数应为char类型,而不是std::string类型。编写代码时,双引号(“)使char*字符串,而单引号(')使char

我还建议键入名称空间std::。它只有5个字符(即使所有打字加起来也是如此),并且通常被认为是更好的做法。