int
型、double
型、bool
型を使います。std::wstring
型はユーザー定義型です。
#include <Windows.h>
//std::wstring, std::to_wstring()を定義しているライブラリ
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
//整数2020を文字列に変換して表示
MessageBoxW(NULL, std::to_wstring(2020).c_str(), L"MessageBoxW1", MB_OK);
//整数16.7を文字列に変換して表示
MessageBoxW(NULL, std::to_wstring(16.7).c_str(), L"MessageBoxW2", MB_OK);
return 0;
}
.
をつけて書きます。.5
ではなく、0.5
と書いてください。
std::wstring
型に変換するには、std::to_wstring
関数を使います。c_str
関数とは違い、std::to_wstring(変換する数値)
のように引数を書きます。
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
//加算,足し算
MessageBoxW(NULL, std::to_wstring(2 + 3).c_str(), L"2+3=", MB_OK);
//減算,引き算
MessageBoxW(NULL, std::to_wstring(9 - 2).c_str(), L"9-2=", MB_OK);
//乗算,掛け算
MessageBoxW(NULL, std::to_wstring(51 * 7).c_str(), L"51*7=", MB_OK);
//除算,割り算
MessageBoxW(NULL, std::to_wstring(12 / 4).c_str(), L"12/4=", MB_OK);
//剰余算,余り算
MessageBoxW(NULL, std::to_wstring(23 % 3).c_str(), L"23%3=", MB_OK);
return 0;
}
+
と-
は数学と同じ記号です。*
と/
が使われます。-
をつけることで表わせます。
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
//負数の足し算
MessageBoxW(NULL, std::to_wstring(-2 + 3).c_str(), L"-2+3=", MB_OK);
//負数の引き算
MessageBoxW(NULL, std::to_wstring(9 - -2).c_str(), L"9-(-2)=", MB_OK);
//負数の掛け算
MessageBoxW(NULL, std::to_wstring(51 * -7).c_str(), L"51*(-7)=", MB_OK);
//正数の丸め
MessageBoxW(NULL, std::to_wstring(13 / 5).c_str(), L"13/5=", MB_OK);
//負数の丸め
MessageBoxW(NULL, std::to_wstring(-20 / 7).c_str(), L"-20/7=", MB_OK);
return 0;
}
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
//実数の加算
MessageBoxW(NULL, std::to_wstring(1.2 + 3.4).c_str(), L"1.2+3.4=", MB_OK);
//実数の乗算
MessageBoxW(NULL, std::to_wstring(1.125 * -0.8).c_str(), L"1.125*(-0.8)=", MB_OK);
//実数の除算
MessageBoxW(NULL, std::to_wstring(1.0 / 3.0).c_str(), L"1.0/3.0=", MB_OK);
return 0;
}
int
型と実数のdouble
型では、後者の方が広い範囲を表せます。double
型の値同士のように計算されるのです。
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int){
//整数と実数
MessageBoxW(NULL, std::to_wstring(1.5 + 4).c_str(), L"1.5+4=", MB_OK);
//順番は逆でもよい
MessageBoxW(NULL, std::to_wstring(7 * 1.7).c_str(), L"7*1.7=", MB_OK);
//丸めは起こらない
MessageBoxW(NULL, std::to_wstring(1.0 / 3).c_str(), L"1.0/3=", MB_OK);
return 0;
}
(変換先型名)変換する値
という構文を使います。std::wstring
型の値を変換したり、他の型から変換することはできません。
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int){
//実数への変換
MessageBoxW(NULL, std::to_wstring((double)50).c_str(), L"実数への変換", MB_OK);
//整数への変換
MessageBoxW(NULL, std::to_wstring((int)6.2).c_str(), L"整数への変換", MB_OK);
//丸め回避
MessageBoxW(NULL, std::to_wstring(2/(double)7).c_str(), L"2/7.0=", MB_OK);
return 0;
}
int
型やdouble
型の変数を使ってみましょう。
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int){
//整数型変数の宣言と初期化
int a = -1452;
//値の表示
MessageBoxW(NULL, std::to_wstring(a).c_str(), L"a=", MB_OK);
//代入
a = 90;
//加算
MessageBoxW(NULL, std::to_wstring(a + 30).c_str(), L"a+30=", MB_OK);
//実数型変数の宣言と初期化
double b = 20.6;
//暗黙の型変換1
MessageBoxW(NULL, std::to_wstring(b + 5).c_str(), L"b+5=", MB_OK);
//キャスト
MessageBoxW(NULL, std::to_wstring((int)b).c_str(), L"キャスト", MB_OK);
//暗黙の型変換2
a = b * 4;
MessageBoxW(NULL, std::to_wstring(a).c_str(), L"a=", MB_OK);
return 0;
}
double
型変数pi
に代入してください。int
型変数r
に代入してください。rの数値
の円の円周の長さは長さ
、面積は面積
です。」のように、繋げて表示してください。
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
//この後に連結すること
std::wstring text="半径";
return 0;
}
#include <Windows.h>
#include <string>
int WINAPI wWinMain(HINSTANCE, HINSTANCE, LPWSTR, int) {
//この後に連結すること
std::wstring text = L"半径";
double pi = 3.14;
int r = 10;
text = text + std::to_wstring(r);
text = text + L"の円の円周の長さは" + std::to_wstring(2 * r * pi) + L"、";
text = text + L"面積は" + std::to_wstring(r * r * pi) + L"です。";
MessageBoxW(NULL, text.c_str(), L"円周と面積", MB_OK);
return 0;
}