2017-08-04 53 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