2017-08-04 57 views
0

我正在嘗試打印用戶在我正在處理的程序中輸入的日期。在這個非常簡化的的例子中,我試圖得到一個string變量中的int變量的值。在這裏,你可以看到我試過static_cast<char>(int)。 我也曾嘗試在字符串內部包含int變量的值

  • myStr = num;
  • myStr = num + 0;
  • myStr = num + '0';

以及許多其他的東西,沒有任何意義只是爲了看看有什麼編譯器和程序做什麼 - 如果我能讓它運行。

下面是幾行我有縮短的例子:

#include <iostream> 
#include <string> 
using namespace std; 

int main() 
{ 
    int num = 100; 
    string myStr = static_cast<char>(num); 
    cout << myStr; 
    return 0; 
} 

在我的其他程序,我想2017年(保存爲int變量)插入到包含其餘的字符串日期。我只是遇到大於9的數字問題。

感謝您的任何幫助。

回答

2

使用標準庫函數std::to_string將您的號碼轉換爲字符串形式。

+0

我不能相信我無法從所有發現此功能的標誌編制工作我做的谷歌搜索。只是爲了跟進 - 可以使用這個功能被認爲是不好的做法的一部分?非常感謝! –

+1

@Tanner Causey爲什麼你會考慮使用'std :: to_string'壞習慣?它被添加到標準庫中以便於將數字轉換爲字符串形式,而無需使用stringstreams等。如果有的話,使用它是*好的*練習。 –

1
stringstream ss; 
ss << num; 
cout << ss.str(); 

不要忘了包括sstream

由於C++ 11標準,字符串到數字的轉換,反之亦然是建立在爲標準庫,你可以使用to_string方法。

0

您可以使用to_string將int轉換爲String。

#include<String> 
std::string int_string = std::to_string(num); 

如果你有C++的舊版本,這將通過與-stdC++ = 11或更高例如

g++ filename.cpp -stdc++=11