所以,基本上这实际上是我的代码中出现问题的地方。
#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_ostream&lt; _Elem,_Traits&gt; &amp; std :: operator&lt;&lt;(std :: basic_ostream&lt; _Elem,_Traits&gt;&amp;&amp;,_ Ty)':无法推断'std :: basic_ostream&lt; _Elem,_Traits&gt;的模板参数&安培;&安培;”来自'std :: string'
...指向带有箭头的线。我做错了什么?
答案 0 :(得分:2)
使用std::stringstream
或boost::lexical_cast
。
out += boost::lexical_cast<std::string>(k);
或std::to_string
如果可以使用C ++ 11
答案 1 :(得分:1)
请尝试以下方法: -
std::ostringstream strs;
strs << dbl;
std::string str = strs.str();
答案 2 :(得分:1)
您正尝试使用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);