[英]C++ atof invalid use of void bug
请帮助我,我已经接近完成这个庞大的项目。 我不明白我收到的错误
score-=(double)atof(kitty.pop_front());
!无效使用void表达式
kitty是双端队列类型的字符串。 得分是很长的两倍。 我对类型转换不好,但是错误似乎真的无关吗?
我尝试了其他论坛的解决方案,但它们都相对无关。
dequeue :: pop_front()返回void:
void pop_front();
因此,您不能以这种方式在表达式中使用它。
您可以改为:
score-=(double)atof(kitty.front().c_str());
kitty.pop_front();
如果deque
值为std::string
,则atof
函数调用应为:
score -= atof(kitty.front().c_str());
原因是atof
需要一个const char*
参数,而std::string::c_str()
返回一个代表字符串的const char*
。
第二, front()
函数返回在双端队列的前面的值。 如果要从front
删除该值,则调用kitty.pop_front()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.