> -6ren">
gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:50 29 4
gpt4 key购买 nike

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

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

在一个名为“Time”的类中,我在读取以下输入时使用它:

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
}

但是,“共享”类中的 getline 函数给我错误。这两个类都在使用库:

#include <iostream>
#include <string>

我该如何克服这个问题?谢谢

最佳答案

getline(input,C.value,',');

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

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

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

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

关于c++ getline() 错误,没有重载函数实例 "getline"与参数列表匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23171137/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com