在C 中浮动到字符串转换
float to String conversion in c++
我正在LPC 1769微处理器上编程,但是我无法弄清楚如何将浮点数转换为字符串,以便我可以在显示屏上打印它。我正在使用sprintf
命令,但我的程序仍显示一个内存错误。如何将float
转换为字符串?我需要在不使用标准库的情况下执行此操作。
在C 11中,您可以使用std :: to_string将数值转换为std::string
,您可以使用c_str()
方法将其变成C-Style字符串。
这也将有效:
#include <stdio.h>
#define MAXIMUM_TEXT_SIZE 64U
float value = 3.14159f;
char text_array[MAXIMUM_TEXT_SIZE];
snprintf(text_array, MAXIMUM_TEXT_SIZE, "%4.2f", value);
浮点值的字符串形式将在text_array
中。
在具有约束内存的嵌入式系统上使用std::string
之前,请验证您设置了不错的内存分配和垃圾恢复。如果不是,请使用分配器将字符串从固定尺寸的内存池分配。搜索"碎片"。
此代码将为您做到这一点:
#include <iostream>
#include <sstream>
#include <string>
int main()
{
float val =3.456;
std::stringstream stream;
stream << val;
std::string test = stream.str();
std::cout << test << std::endl;
}
测试将包含val
的浮子,如3.456。
您想做的是使用sprintf
,在这种情况下,您可以这样做:
char buffer[40]
float val =3.456;
sprintf(buffer, "%f", val);
std::string out(buffer);
std::cout << out << std::endl;
希望有帮助。
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如何将这个std::字符串转换为std::基本字符串
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在C++中将十六进制字符串转换为文本数据
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何从字符串转换为双精度*
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何在C++中将 Python 字符串转换为其转义版本?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 如何将整数字符串转换为整数的二维向量?
- 使用 "stringstream " 将字符串转换为整数
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 将文件复制到自定义位置,存在字符串转换问题
- 将ANSI C字符串转换为UNICODE
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在C++中将字符串转换为双精度,而无需科学记数法
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何在C++中将字符串转换为双精度?
- 将字符串转换为无符号字符数组/字节数组