プロが教える店舗&オフィスのセキュリティ対策術

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”とかの意味がよくわかりません。
どうかご教授お願いいたします。

A 回答 (2件)

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



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

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

参考URL:http://msdn.microsoft.com/ja-jp/library/akzyzwh9 …
    • good
    • 0
この回答へのお礼

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

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

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

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

お礼日時:2009/05/25 13:15

C++/CLIの基本的な構文ですねー。


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

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

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

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

”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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!