在字符串(C++)的末尾添加一个双精度

Adding a double to the end of a string (C++)

本文关键字:一个 双精度 添加 字符串 C++      更新时间:2023-10-16

所以,从本质上讲,这就是我的代码中出现问题的地方。

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <cstring>
void main()
{
    double k = 10.0;
    string out;
    out = "V";
    out += ".";
    out << k;   <---
}

我试图编译,但我得到了这个错误:

错误C2784:"std::basic_stream&lt_Elem,_Traits>&std::运算符<lt;(std::basic_stream<_Elem,_Traits>&&,_Ty)":无法推导出"std::基本流&lt_Elem,_Traits>&amp;'来自"std::string"

它指向带有箭头的直线。我做错了什么?

使用std::stringstreamboost::lexical_cast

out += boost::lexical_cast<std::string>(k);

或者std::to_string,如果您可以使用C++11

尝试以下操作:-

std::ostringstream strs;
strs << dbl;
std::string str = strs.str();

您正在尝试使用string而不是stringstream。没有定义将string作为其第一个参数的运算符<<,这正是编译器试图告诉您的(以一种相当神秘的方式)。

stringstream out;
out << "V." << k;
string s = out.str();

如果你在C++11上,你可以这样写:

double k = 10.0;
string out;
out = "V";
out += ".";
out += to_string(k);
相关文章: