none
テキストファイルから1文字ずつ読み取る方法は? RRS feed

  • 質問

  • テキストボックスに入力されたパスに従ってボタンクリックでリストボックスにテキストファイルの内容が1文字ずつ表示させるつもりで記述しました。

    しかし、 文字ではなく数値が表示されます。テキストファイルの内容は漢字を含む全角かな文字です。正常に表示させる上で、どこが間違っているのでしょうか?

    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
      String^ myPath = textBox1->Text;
         StreamReader^ RS;
      int intChar;

      if (  !File::Exists( myPath ) )
      {
       MessageBox::Show("ファイルが見つかりません","通知");
      }  

      listBox1->Items->Clear();
      RS = gcnew StreamReader(myPath,System::Text::Encoding::Default);
      intChar = RS->Read();
      while(intChar !=-1 )
      {
       listBox1->Items->Add((char)intChar);
       intChar = RS->Read();
      }
      RS->Close();
        }

    どなたか、よろしくお願いします。

    2011年4月26日 10:36

回答

  • C++/CLI では char と System::Char は別物です。System::Char は 16bit サイズの UTF-16 の符号単位ですが、char は通常 8bit 整数値です。

    2011年4月26日 12:27

すべての返信