簡體   English   中英

將 int 轉換為 char 然后推回 vector

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM