使用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>
我怎样才能克服这一点? 感谢
答案 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);