スポンサーリンク

C++CLIでテキストファイルの入出力

テキストファイルの書き込みにはStreamWriterを用いる。System::Text::Encodingでエンコーディングの指定が可能

void FileWrite(System::String^ filepathname)
{
  System::IO::StreamWriter^ sw = gcnew System::IO::StreamWriter(
    filepathname, //ファイル名
    false, //追記モード
    System::Text::Encoding::UTF8
    //System::Text::Encoding::GetEncoding("shift_jis") //文字コード
    );


  sw->Write("吾輩は猫である。名前はまだ無い。\n");
  sw->Write("どこで生れたかとんと見当がつかぬ。\n");
  sw->Write("何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。\n");
  sw->Write("吾輩はここで始めて人間というものを見た。\n");
  sw->Write("しかもあとで聞くとそれは書生という人間中で一番獰悪な種族であったそうだ。\n");
  sw->Write("この書生というのは時々我々を捕えて煮て食うという話である。\n");

  sw->Close();
}

 

テキストファイルの読み込みにはStreamReaderを使用する。

一行ずつの読み込みにはReadLineを用いる。ファイル終端判定はPeekを使うのが一般的のようだが、参考文献によると模範解答ではないらしい。ここではEndOfStreamを使っている

void FileRead(System::String^ filepathname)
{

  //"C:\test\1.txt"をShift-JISコードとして開く
  System::IO::StreamReader^ sr = gcnew System::IO::StreamReader(
    "C:\\test\\sample.txt",
    System::Text::Encoding::Encoding::UTF8);

  while(sr->EndOfStream != true ){
    System::String^ r = sr->ReadLine(); 
    System::Console::WriteLine( r );//ReadLineは改行を含まない
  }

  sr->Close();
}

 

 

int main(array<System::String ^> ^args){

  FileWrite("C:\\test\\sample.txt");
  FileRead("C:\\test\\sample.txt");

  System::Console::Read();
}

 

参考文献

https://dobon.net/vb/dotnet/file/readfile.html

https://www.aozora.gr.jp/cards/000148/files/789_14547.html

http://d.hatena.ne.jp/saiya_moebius/20090116/1232072712

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: