c++中int到String的转换
Converting an int to String in C++
我一直在做一个项目,我需要将int8_t变量转换为字符串。我对此做了一些阅读,并得出结论,使用Strint(int8_t)是一种选择。
下面是我的代码:int8_t matt = 0;
matt += 1;
char string[3]=String(matt);
tft.textWrite(string);// this is used to display text on an lcd display (arduino)
由于某种原因,我使用的方法没有工作,所以我研究了一点,发现字符串(马特)实际上是一个字符串对象。我不知道这是不是真的。为了使tft.textWrite();它看起来应该像这样:
代码如下:
char string[15]= "Hello, World! ";
tft.textWrite(string);
我也试过这样做:
char string[3];
sprintf(string, "%ld", matt);
有人能帮忙吗?
谢谢
应该没问题。
sprintf(string, "%ld", matt);
%ld用于长整型。如果您使用的是-128到+128的int8_t,那么最好使用%d。
这段代码几乎是正确的
char string[3];
sprintf(string, "%ld", matt);
首先"%ld"
期望一个long int
作为类型,你需要找到一个可以打印8位int的类型。我想应该是"%hh"
second your
char string[3];
太短了!如果马特是100,那么你使用3个字符,但你仍然需要空间来结束零(和符号)。所以至少应该是
char string[5];
第三代码
sprintf(string, "%ld", matt);
是不安全的,因为它可以像在原始代码中那样写在字符串的末尾之外,使用
snprintf(string, sizeof(string), "%ld", matt);
首先你必须记住,在C语言中没有String类型,只有固定大小的char数组(type: char*或char[])。我们仍然称它们为字符串,但要记住这一点。
你对sprint的尝试在我看来不错。您是否希望您的环境包含完整的C标准库?如果没有,则必须编写自己的格式函数。如果有,是否包含了string.h ?
无论如何,尝试使用snprintf()来精确确定目标的大小,这样更安全。
编辑:这篇文章适用于好的老C风格,我没有看到偏离主题
下面的代码应该可以工作:
// Example program
#include <iostream>
#include <string>
int main()
{
int8_t matt = 0;
matt += 1;
char string[1];
sprintf(string, "%ld", matt);
std::cout << string << std::endl;
return 0;
}
打印"1"。
相关文章:
- 使用char类型将decimal转换为string,将string转换为decimal
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 将C++ std::string 转换为 UTF-16-LE 编码的字符串
- 将日语 wstring 转换为 std::string
- 如何将带有十六进制值的 std::string 转换为 std::vector<无符号字符>
- 如何在 std::string 和 Aws::String 之间进行转换?
- C++:将模板类型 char 转换为 std::string
- 无法<string>从"常量字符 []"转换为<类名>
- 将 std::string( "x3BxDEx7C" ) 转换为可读的十六进制字符串?
- 如何在 c++ 中将向量转换为<string>常量字符* const*?
- 无法从'const std::string [3]'转换为'std::string'
- 从 std::string 转换为 const 无符号整数
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- 为什么std::string没有(显式)const char*强制转换
- 将单个字符转换为 std::string 前缀 \x01
- C++ 模板函数无法将"std:string"转换为"double"作为回报
- 将 std::string 转换为 const char* 用于 printf 消耗
- Swig无法将python3的字节对象转换为std::string
- 将utf16宽std::wstring转换为utf8窄std::string以获得罕见字符时出现问题
- 将 std::string 转换为 const tchar*