こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

”System::IO::StreamReader”ってどういう意味ですか?

Visual C++ 2008 Express Editionで、現在、600kバイト程度のバイナリファイルを読み込んで特定の番地のデータだけを取り出してそれをテキスト変換してテキストボックス内に表示させるというプログラムを作成しているのですが、このことをOKwaveでどのようにコーディングするかを教えてもらったところ、


System::IO::StreamReader^ sr=gcnew StreamReader(_T("sample.txt"));


このような文を教えてもらったのですが、全く知識がなく何をやっているのかわかりません。
”sr”というのは変数で、sample.txtからstreamReader関数でsample.txt内のデータをsr変数に
入れているという感じがしますが、”System::IO::StreamReader”とか”gcnew”とかの意味がよくわかりません。
どうかご教授お願いいたします。

投稿日時 - 2009-05-25 11:59:24

QNo.4988570

すぐに回答ほしいです

質問者が選んだベストアンサー

私は、C++で開発を行っているのではなくC#ですが・・・ さらに初心者ですが・・・

>System::IO::StreamReader
テキストの文字列を、指定のフォーマットなどで取り込む時に使用します。
srへ、格納した後は、自由に取り出すことができます。
(while文などを使用して、上から一行づつ取り出すなど)

>gcnew
gcnewは、初めてみたのでわかりませんが、メモリ管理周りっぽいですね。難しかったですが、リンク載せておきます。(2つ目)

参考URL:http://msdn.microsoft.com/ja-jp/library/akzyzwh9.aspx,http://loafer.jp/mixi/diary/class.xsp?2007-09-02-22-43

投稿日時 - 2009-05-25 12:21:12

お礼

回答ありがとうございます。

資料のURLも載せてもらい、ありがとうございます。
それで、​http://msdn.microsoft.com/ja-jp/library/akzyzwh9.aspxこちらのリンクで、同じような例文が書かれいて、

”StreamReader* objReader = new StreamReader("c:\\test.txt");”
テキスト文を”StreamReader”で宣言したobjReader変数に渡している文なんですが、
”StreamReader*”という書き方をしているのですが、”System::IO::StreamReader”という書き方とは違うのですが、これには何か理由があるのでしょうか? ”System::IO::”このコロンで挟んだりして書いたりする文というのはどうゆうことを表しているのでしょうか?

どなたかご存じでしたらご教授いただけませんでしょうか?

投稿日時 - 2009-05-25 13:15:07

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

FAY

C++/CLIの基本的な構文ですねー。
大雑把に書くと、System名前空間の下のIO名前空間の下の
StreamReaderクラスのインスタンスを、ガベージコレクタの対象として
(すなわちマネージヒープに)作成し、そのハンドルをsrに持ちましょう、ということです。

なので、
System::IO::StreamReaderは
System名前空間の下のIO名前空間の下のStreamReaderクラス
gcnewは
マネージヒープ上にインスタンスを作成しなさい
となるのかな。

ここら辺の意味が理解不能ならば、まずは入門用の
書籍やWebサイトを参照することをオススメします。

投稿日時 - 2009-05-25 13:25:39

お礼

回答ありがとうございます。

”System::IO::StreamReader”このような書き方はC++言語の特徴だそうですね。

C++言語の入門学習WEBページの
http://www.asahi-net.or.jp/~yf8k-kbys/newcpp3.html
”C++によるプログラミング入門3 cinを使った入力”

に同じような記述がありました。


ちょっと基本的なことを見ながらC++プログラミングをやっていきたいと思います。

投稿日時 - 2009-05-25 14:27:32

あなたにオススメの質問