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,以便调用时进行对话你会没事的。