使用stringstream时,c++ float到string转换失败
C++ float to string conversion failing with stringstream
我正在研究这个粒子。io Spark平台,目前卡住试图打印一个浮点数作为字符串。我看到一些解决方案,你使用字符串流转换浮点数。
我的实现如下:
#include <sstream>
void loop()
{
float tempC = 21.35;
std::ostringstream stream;
stream << tempC;
std::string tempCString = stream.str();
// why does this give me a blank string?
Serial.print("Temp 1: ");
Serial.println(tempCString.c_str());
// while this outputs the float
Serial.print("Temp 2: ");
Serial.println(tempC);
Serial.println(tempCString.size());
}
结果如下:
Temp 1:
Temp 2: 21.35
6
同样,编译失败:
Serial.println(tempCString);
有以下错误:
error: no matching function for call to 'USBSerial::println(std::string&)'
编辑:链接到关于Serial.print的particle文档
https://docs.particle.io/reference/firmware/core/打印-
我找到了答案。不确定这是否适用于普通的c++,但对于运行在particle spark上的c++版本,解决方案如下:
float myFloat = 6.123;
String floatString(myFloat, 2);
这给了我一个可以处理的字符串!
相关文章:
- 使用char类型将decimal转换为string,将string转换为decimal
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 如何将带有十六进制值的 std::string 转换为 std::vector<无符号字符>
- 无法从'const std::string [3]'转换为'std::string'
- 从 std::string 转换为 const 无符号整数
- C++ 模板函数无法将"std:string"转换为"double"作为回报
- 将 std::string 转换为 const char* 用于 printf 消耗
- 将 std::string 转换为 const tchar*
- 如何在PHPCPP库中将C++map<string,map<string>>转换为php::value?
- 将 std::string 转换为具有特殊字符的 FString (TCHAR / wstring)
- 将 std::string 转换为 wchar_t* 的类型定义
- 在 C++03 中将 std::string 转换为 int
- 将 'hana::string' 转换为 'constexpr const char (&)[]'
- 正确的交叉平台从 std::string 转换为 'const TCHAR *'
- 从矢量<string>转换为wchar_t**
- 将 std::vector<std::string> 转换为 const char* const*
- 将 std::string 转换为 boost::asio::streambuf
- C++ SNAP 库将 std::string 转换为 TStr
- 自动将 std::string 转换为 char* 而无需每次都调用 c_str() 的最佳方法
- 将 std::string 转换为 Swift String