在字符串(C++)的末尾添加一个双精度
Adding a double to the end of a string (C++)
所以,从本质上讲,这就是我的代码中出现问题的地方。
#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<_Elem,_Traits>&std::运算符<lt;(std::basic_stream<_Elem,_Traits>&&,_Ty)":无法推导出"std::基本流<_Elem,_Traits>&;'来自"std::string"
它指向带有箭头的直线。我做错了什么?
使用std::stringstream
或boost::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);
相关文章:
- 将双精度变量设置为另一个变量的值
- 我在C++中使用提升哈希函数将 3 个双精度组合成一个面临冲突的哈希
- 为什么 Clang std::ostream 写一个 std::istream 无法读取的双精度?
- Fmod 函数清楚地输出一个预期的双精度值,但 if(fmod == 预期的双精度值)的计算结果不是 true
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 字符串和双精度的麻烦,等值后再得到一个数字
- 我想读取文本文件中的所有内容(但文本文件中只有一个双精度值),转换为双精度值并返回值
- 在编译时将整数和分数部分宏组合成一个新的宏或双精度
- 将 32 位浮点数和不强制转换的 32 位整数与双精度进行比较,当其中一个值可能太大而无法完全适合另一种类型时
- 有没有办法构造一个 constexpr 函数来获取双精度的位表示
- C++ 传递一个 int,错误地说这是一个双精度
- 在C++中获取大于或等于一个双精度的最小浮点值(以及小于或等于一的最大浮点值)
- 在字符串(C++)的末尾添加一个双精度
- C++试图返回一个双精度数组的字符串(有点)
- 如何找到最近的下一个/上一个双精度值(给定数字的numeric_limits::epsilon)
- C++函数在一个双精度数组中查找最大值
- 两个整型到一个双精度c++
- 如何用代数工具创建一个双精度矩阵
- 当我从函数返回一个双精度值时,它变成了一个整数
- 在程序中稍后传递一个双精度-使用对话框进行输入