c ++ getline()错误,没有重载函数的实例" getline"匹配参数列表

时间:2014-04-19 14:14:33

标签: c++ getline overloading

使用getline()函数时出现以下错误:

没有重载函数的实例“getline”匹配参数列表

在一个名为“时间”的课程中,我在阅读以下输入时使用它:

istream & operator >> (istream & input, Time & C) /// An input stream for the hour     minutes and seconds
{
char ch;
input >> C.hour >> ch >> C.minute >> ch >> C.second;
getline(input,C.ampm,',');

return input;   /// Returning the input value
}

这样可以正常工作,但我也想将它用于另一个名为“Shares”的类:

istream & operator >> (istream & input, Shares & C) /// An input stream for the day, month and year
{
char ch;
input >> C.price >> ch >> C.volume >> ch >> C.value >> ch;
getline(input,C.value,',');

return input;   /// Returning the input value
}

然而,“shares”类中的getline函数给出了错误。 这两个类都使用库:

#include <iostream>
#include <string>

我怎样才能克服这一点? 感谢

1 个答案:

答案 0 :(得分:2)

  

函数getline(输入,C.value,&#39;&#39);

根据评论,你写道C.value是双倍的。这不会飞,因为正如其他人指出的那样,预期参数在那里是string type

您需要读入一个临时字符串,然后将其转换为double。后一步很简单,但使用C ++ 11 std::stod更简单。

因此,你会写这样的东西:

std::string valueString;
getline(input, valueString, ',');
C.value = std::stod(valueString);