C ++ atof无效使用void bug

时间:2015-02-22 04:37:23

标签: c++

请帮助我接近完成这个庞大的项目。 我不明白我收到的错误

score-=(double)atof(kitty.pop_front());

!无效使用void表达式

kitty是一种deque类型的字符串。分数是一个很长的两倍。我对类型转换不好,但错误似乎真的无关?

我尝试了其他论坛的解决方案,但它们都是相对无关的。

2 个答案:

答案 0 :(得分:1)

dequeue::pop_front()返回void:

void pop_front();

所以你不能在表达式中使用它。

你可以这样做:

score-=(double)atof(kitty.front().c_str());
kitty.pop_front();

答案 1 :(得分:0)

如果deque中的值为std::string,则atof函数调用应为:

score -= atof(kitty.front().c_str());

原因是atof需要const char*参数,std::string::c_str()会返回代表字符串的const char*

其次,front()函数返回双端队列前面的值。如果您要从front中删除该值,请拨打kitty.pop_front()