2017-08-04 13 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'悪い練習を使うべきだと思いますか?これは標準ライブラリに追加され、ストリングストリームなどで悩まずにストリング形式への数値の変換を容易にしました。何かあれば、それを使うのは良いことです。 –

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

C++ 11標準、文字列から数値への変換およびその逆は、標準ライブラリに組み込まれており、あなたがto_stringにを使用できるのとおりsstream提供

を含めることを忘れないでください。方法。

0

intをStringに変換するには、〜to_stringを使用できます。

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

もしC++の古いバージョンを持っている場合は、これは私がすべてからこの関数を見つけることができませんでした信じることができない-stdC++ = 11以上例えば

g++ filename.cpp -stdc++=11 
関連する問題