C/C++のputwchar()関数とは?使い方と実行例をわかりやすく解説
この記事では、C++ STLにおけるputwchar()関数の動作、構文、および具体的な使用例について詳しく解説します。
putwchar()とは?
putwchar()関数は、C++ STLに組み込まれている関数の一つで、<cwchar>ヘッダーファイル内で定義されています。この関数は、ワイド文字(wide character)を標準出力デバイスに書き込むために使用されます。引数として渡されたワイド文字を受け取り、システムの標準出力(stdout)に出力します。
なお、putwchar()は<cstdio>ヘッダーで定義されているputchar()関数のワイド文字版に相当します。
構文
putwchar( wchar_t widec );
パラメータ
この関数は、以下のパラメータを受け取ります。
- widec − 標準出力デバイスに出力したいワイド文字。
戻り値
この関数は、次の2つの値のいずれかを返します。
- ワイド文字が標準出力に正常に書き込まれた場合は、書き込まれた文字そのものが返されます。
- 書き込みに失敗した場合はWEOFが返され、エラーインジケータが設定されます。
基本的な使用例
入力
wchar_t ch = 'a'; putwchar(ch);
出力
a
使用例1:ヘブライ文字の出力
次の例では、setlocale()関数でロケールをUTF-8に設定した上で、Unicodeコードポイント(U+05D0〜U+05EA)に対応するヘブライ文字をループ処理で順番に出力しています。ワイド文字を正しく表示するためには、ロケールの設定が非常に重要です。
#include <bits/stdc++.h>
using namespace std;
int main(){
setlocale(LC_ALL, "en_US.UTF-8");
wchar_t hold = L'\u05d0', next = L'\u05ea';
wcout << L"Hebrew Alphabets are: ";
for (wchar_t i = hold; i <= next; i++){
putwchar(i);
putwchar(' ');
}
return 0;
}
出力
Hebrew Alphabets are: א ב ג ד ה ו ז ח ט י ך כ ל ם מ ן נ ס ע ף פ ץ צ ק ר ש ת
使用例2:英字の出力
続いて、半角英字(ASCII文字)を連続して出力するシンプルな例です。
#include <bits/stdc++.h>
using namespace std;
int main(){
wchar_t hold = 'a', next = 'b';
wcout << "English Alphabets are: ";
for (wchar_t i = hold; i <= next; ++i){
putwchar(i);
putwchar(' ');
}
return 0;
}
出力
English Alphabets are: a b
まとめ
putwchar()関数は、<cwchar>ヘッダーで定義されるワイド文字専用の出力関数です。成功時には書き込んだ文字を、失敗時にはWEOFを返すため、戻り値を確認することでエラーハンドリングも可能です。Unicodeなどのマルチバイト文字を扱うプログラムで特に役立つ関数なので、ぜひ活用してみてください。
-
C/C++のmbsrtowcs()関数とは?構文・パラメータ・戻り値と実例を解説
本記事では、C++ STLに含まれるstd::mbsrtowcs()関数の仕組み、構文、および具体的な使用例について詳しく解説します。 std::mbsrtowcs()とは? std::mbsrtowcs()は、C++ STLに組み込まれている関数で、<cwchar>ヘッダーファイル内で定義されています。関数名のmbsrtowcs()は「multibyte string to wide character string(マルチバイト文字列からワイド文字列への変換)」を意味し、再開可能な変換状態を維持しながら、NULL終端されたマルチバイト文字列をワイド文字列表現へと変換します。この
-
C/C++のsystem()関数とは?使い方と実行例を徹底解説
この記事では、C/C++におけるsystem()関数の基本的な使い方と動作について、具体例を交えながら詳しく解説します。 system()関数は、C/C++標準ライブラリに含まれる関数の一つです。オペレーティングシステムのコマンドプロセッサ(コマンドプロンプト)やターミナルで実行可能なコマンドをプログラムから渡して実行でき、コマンドの処理が完了すると制御をプログラムに戻します。 この関数を使用するには、ヘッダーファイル<stdlib.h>(C++の場合は<cstdlib>)をインクルードする必要があります。 構文 system()関数の構文は以下の通りです。 int