C++ c++;getline()错误,没有重载函数的实例;getline";匹配参数列表
使用getline()函数时出现以下错误: 重载函数“getline”的实例与参数列表不匹配 在一个名为“Time”的类中,我在阅读以下输入时使用它:C++ c++;getline()错误,没有重载函数的实例;getline";匹配参数列表,c++,getline,overloading,C++,Getline,Overloading,使用getline()函数时出现以下错误: 重载函数“getline”的实例与参数列表不匹配 在一个名为“Time”的类中,我在阅读以下输入时使用它: istream & operator >> (istream & input, Time & C) /// An input stream for the hour minutes and seconds { char ch; input >> C.hour >> ch >
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”类中的getline函数给了我一个错误。
两个类都在使用库:
#include <iostream>
#include <string>
#包括
#包括
我怎样才能克服这个问题?
谢谢
getline(输入,C.value,,)
根据这些评论,您写道C.value
是双精度的。这不会飞起来,因为正如其他人指出的那样,预期的参数是其中的一个
您需要读入一个临时字符串,然后将其转换为double。后一步很简单,但使用C++11更简单
因此,您可以这样写:
std::string valueString;
getline(input, valueString, ',');
C.value = std::stod(valueString);
什么类型是C.apmp和C.value?ampm是字符串,value是double我想这可能是问题所在。那条getline正在期待流内,stringSee我真的不明白你想做什么。getline上面的那行不是已经在解析你的值了吗?
std::string valueString;
getline(input, valueString, ',');
C.value = std::stod(valueString);