[英]Convert int to char then push back to vector
我在將 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... 的無效轉換錯誤。 有沒有更簡單的方法將 integer 轉換為字符,然后將其存儲在包含字符的向量中? 由於之前的任務,我需要首先將值作為 int 引入,然后我需要將 integer 10 作為“10”引入向量。
對於初學者來說似乎有一個錯字
sprintf(text,"%d",f);
你好
sprintf( c ,"%d", i );
此向量的值類型
std::vector<char> data;
是char
。 因此,在成員 function push 中,您必須提供一個類型為char
的表達式。 然而在這次通話中
data.push_back(c);
您提供了數組類型的 object
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 ) );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.