我在将int转换为char时遇到问题。代码如下:
int main {
int i = 10;
char c[80];
std::vector<char> data;
sprintf(i,"%d",c);
data.push_back(c)
}
但是我一直从char *到std :: vector ...错误地转换为无效。有没有更简单的方法将整数转换为字符,然后将其存储在包含字符的向量中?由于之前的任务,我需要首先将值作为一个int值,并将该整数10作为“ 10”带入向量。
答案 0 :(得分:4)
对于初学者来说似乎有错字
sprintf(text,"%d",f);
你娘
sprintf( c ,"%d", i );
此向量的值类型
std::vector<char> data;
是char
。因此,在成员函数push中,您必须提供类型为char
的表达式。但是在这次通话中
data.push_back(c);
您提供了一个数组类型的对象
char c[80];
如果要在向量中将数字的字符表示形式存储为单独的字符,则可以编写例如
size_t n = strlen( c );
data.reserve( n );
data.assign( c, c + n );
或者您也可以声明向量,通过用数字表示来初始化它,例如
std::vector<char> data( c, c + n );
如果要将整数存储为向量的一个元素,则应将向量声明为
std::vector<std::string> data( 1, std::to_string( i ) );