• ベストアンサー

VC++でのファイルの読みこませ方

タイトルではわかりにくいと思うのですが、実際はプログラム中である指定した形式で保存されたtxtファイルなどを開いて、その中にある文字列を配列に入れて, そのままの文字列をランダムに表示させたいのですが、なかなかいい方法が浮かびません。配列へ読みこませる関数ってあるんでしょうか?ファイルを開いてから詳しく教えていただけたら嬉しいです。 後、勉強のためにやってるので難しいというか高度なやり方があれば是非教えてください。おねがいします。

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

  • ベストアンサー
回答No.3

表示の仕方が質問に書かれていませんが、 簡単なフローとしては、 1.ファイルからCFileを使いローカルなCString型変数に文字列を読み込む。 2.ローカル変数からダイアログ上の表示領域に移し表示する。  ⇒面罵変数を作成してもいいですし、  SetWindowText関数を使ったっていいですし。 でしょうか。

その他の回答 (2)

回答No.2

MFCを避ける場合(WinだけどアンチMSの人とか)は、 fgets関数かfread関数でしょう。 どちらもstdio.hで宣言されていて、 char* fgets(char *buf, int maxchar, FILE *fp); ファイルfpから、maxchar文字分(厳密には\0があるので-1ですが)、 または改行までをbufに読み込みます。 戻り値は、正常時:bufへのポインタ。異常時・ファイル終了時:NULL。 size_t fread(void *buf, size_t size, size_t n, FILE *fp); ファイルfpから、sizeバイトをn個分bufに読み込みます。 戻り値は、読み込んだデータの数。 MFCはリクツがわかった上で使うべきだと思ってるもんで…

channel6
質問者

お礼

高度な説明ありがとうございました。自分もできるだけ理屈から入りたい方なので 基本からやるべきだったのですが、学校の授業でMFCから入ってしまい、課題、卒研とMFCでやることになってしまって進めば進むほど意味がわからなくなって困っていたので、これが終わりしだい、しっかり理屈から入る本を買ってやっていきたいと 思います。ありがとうございました。

回答No.1

VC++であればMFCを使う方がいいでしょう。 勉強の為ファイルの読書きは「CFile」文字列の操作は「CString」 をMSDNのヘルプで検索して独学してみて下さい。 ⇒結構簡単に組めると思います。 フローとしては、 1.ファイルを開き1行ずつ読込み配列に読み込んでいく。 2.ランダムに配列番号を算出し表示する。 ですね。

channel6
質問者

お礼

遅くなりましたがありがとうございました。読みこませではCFile、文字列では CStringを使って作成を進めていたのですが、 ダイアログエディットから取得したものをCString型の変数に読みこませたのですが、表示でうまくいきません。やはりCString型はメンバ変数の設定として使った方がいいのでしょうか?変数でやっている今はやりかたがおかしいだけなのでしょうか?