数値⇔文字変換

sstream を使うと数値⇔文字変換が簡単です。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. 何時も数値と文字列の相互変換には悩まされています。
    方法は幾通りもあるのですが、解り易いすっきりした方法が見つかりませんでした。
    そんな時 sstream を使うと数値⇔文字の相互変換が簡単に出来ることがわかりました。
  2. ソースコードです。
    // 数値⇔文字変換    前田 稔
    #include <iostream>
    #include <sstream>
    using namespace std;
    
    int main()
    {
        stringstream ss;
        double pi;
    
        // 文字列から数値に変換.
        ss << "3.14";
        ss >> pi;
        cout << showpoint << pi << endl;
    
        ss.clear(); // 状態をクリア.
        ss.str(""); // 文字列をクリア.
    
        // 数値から文字列に変換.
        ss << 123 << "NUMBER";
        cout << ss.str() << endl;
        printf("printf=%s\n",ss.str().c_str());
    
        char c;
        cin.get(c);
    
        return 0;
    }
    
  3. 最初に文字列 "3.14" を double に変換します。
    stringstream ss を通じて簡単に変換されます。
        ss << "3.14";
        ss >> pi;
    
  4. 次に 123 を文字列に変換します。
    ss に 123 と "NUMBER" を結合した文字列が格納されます。
        ss << 123 << "NUMBER";
    
  5. C言語でお馴染みの printf で印字してみました。
        printf("printf=%s\n",ss.str().c_str());
    
  6. 次のコードはウインドウがすぐ消えるので、実行結果を確認するために書かれています。
        char c;
        cin.get(c);
    
  7. 簡単に数値⇔文字の相互変換が出来るのですが、難点は文字コードに Shift-JIS が採用されていることです。
    Shift-JIS⇔Unicode の返還は Program Guid などを参照して下さい。

超初心者のプログラム入門(C/C++)