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

问题描述 投票:0回答:1

我正在尝试获取其中包含数字列表的文本文件,将它们排入队列,将它们存储为双精度,然后将其出队到另一个文本文件。我认为问题出在数据类型的不同之处,从文件作为字符串读取到存储在队列中作为双打时,但我不确定如何解决。

我尝试读取文本文件,首先将它们从字符串转换为双精度,然后将它们存储为另一个队列,然后将具有双精度的第二个队列出队到输出文件中。

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.open(“ input.txt);

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

“ std :: basic_istream>&std :: basic_istream> :: get(std :: basic_streambuf>&,_ Elem)':无法将参数1从'double'转换为'_Elem&”

c++ string type-conversion queue double
1个回答
0
投票

无法用double提取get

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

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

© www.soinside.com 2019 - 2024. All rights reserved.