text mode でファイルを入力

fgetws() を使って text mode でファイルを入力します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. ソースプログラムです。
    ファイル名 説明
    gettext.cpp text mode で入力
  2. ワイドキャラクタで全角文字(漢字など)を表示するときはロケートを設定します。
    locale.h を取り込んで setlocale() 関数で "japanese" に設定して下さい。
        #include <locale.h>
        setlocale(LC_ALL, "japanese");
        wprintf(wstr);
        
  3. ワイドキャラクタの領域を定義して、ファイルから一行ずつ入力します。
    binary モードで入力するのであれば fopen_s() と _wfopen_s() に基本的な違いはありませんが、 text mode で入力すると Shift JIS がワイドキャラクタに変換されて転送されます。
    fgetws() は fgets() のワイドキャラクタ版で、行末文字に出会うか、n-1 個の文字を読み込むまで行われます。
    文字列の最後に NULL が格納されます。
        wchar_t  wstr[256];
        FILE    *FI;            //FILE の定義
        if (_wfopen_s(&FI,L"GetText.cpp",L"r")!=0)
        {   return;  }
        while(fgetws(wstr,256,FI))  wprintf(wstr);
        
  4. テストで使用したテキストファイル "GetText.cpp" はこのプログラム自身です。
    通常のプログラムと同様に Shift JIS で保存 して下さい。
    間違って Unicode で保存すると、1バイトの '\0' が終了記号とみなされ悲惨なことになります。
    私も最初は Unicode で保存する物と思い込み痛い目に合いました。 (^_^;)

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