C++ 参数错误可能与类型不匹配有关?

C++ 参数错误可能与类型不匹配有关?,c++,string,type-conversion,queue,double,C++,String,Type Conversion,Queue,Double,我试图获取一个包含数字列表的文本文件,用队列将它们排队,将它们存储为双倍,然后将它们排到另一个文本文件。我相信问题在于数据类型的不同,从文件作为字符串读取到它作为双倍存储在队列中,但我不确定如何修复它 我试着先读取文本文件,然后将它们从字符串转换为双精度,将它们存储为另一个队列,然后将第二个队列中的双精度数据释放到输出文件中 void queue::enqueue(double nums) { if (isempty()) { front = new numsta

我试图获取一个包含数字列表的文本文件,用队列将它们排队,将它们存储为双倍,然后将它们排到另一个文本文件。我相信问题在于数据类型的不同,从文件作为字符串读取到它作为双倍存储在队列中,但我不确定如何修复它

我试着先读取文本文件,然后将它们从字符串转换为双精度,将它们存储为另一个队列,然后将第二个队列中的双精度数据释放到输出文件中

void queue::enqueue(double nums)
{
    if (isempty())
    {
        front = new numstack(nums);
        rear = front;
    }
    else
    {
        rear->next = new numstack(nums);
        rear = rear->next;
    }
}

void queue::dequeue(double &nums)
{
    numstack *temp = nullptr;
    nums = front->val;
    temp = front;
    front = front->next;
    delete temp;

int main()
{
    queue q;
    double nums;
    int numnums = 0;

    ifstream(input);
    ofstream(output);

    input.open("input.txt");
    while (input.get(nums))
    {
        q.enqueue(nums);
        numnums++;
    }
错误发生在行中的主函数中 打开(“input.txt”)

这两个错误是“没有重载函数的实例”std::basic_ifstream::get[with _Elem=char,_Traits=std::char_Traits]“匹配参数列表”和


“std::basic_-istream>&std::basic_-istream>::get(std::basic_-streambuf>&,_-Elem)∶无法将参数1从'double'转换为'u-Elem&'

您无法使用以下参数提取
double

从流中提取一个或多个字符


您可以使用将您的char*输入转换为float。

我理解这一点,但我不确定它的实现。如果我想将它们存储为double,何时以及如何使用atof函数转换为double?@wmade存储在char*和构造函数调用convert中。您正在通过值传递给ctor,以便调用时进行对话你会没事的。