外部ファイルを読み込む

[戻る]
KUMME 2002/10/24(木) 18:33:28
VC++を最近使い始めたのでお尋ねしたいと思います。数値のみから成る外部ファイルを読み込
み、その値を配列に入れ、描画画面に表示したいのですが、うまく行きません。外部ファイル自
体を読み込んでくれていないようです。命令とそれを記述する場所を教えて下さい。

wood 2002/10/24(木) 18:40:45
まずはこれ
>発言される前に「使用上の注意」を必ずお読み下さい。

次にどんなコードを作成したか転記してみてください

>命令とそれを記述する場所を教えて下さい。
極端な話どこにでも追加できます

君は僕の太陽暦だ! 2002/10/28(月) 10:43:24
すごく、微妙な質問です・・・。

とりあえず
CreateFile
あたりをヘルプで調べてみてください。

あと、woodさんも書いておられますが、
他人がよんで状況がわかるように質問するのを
心がけてくださいね!

ハルヲ 2002/10/28(月) 15:29:58
すみません。私も同じ問題で悩んでいて今日ここに迷い込んできました。
環境とかよくわからないのですが
学校で借りているwindows2000内臓のノートパソコンで
プログラムを作成しているのはMicrosoft Visual C++ 5.0 内です。

5つの数字だけのテキストファイル「str3.txt」を作成し
(データはスペースで区切っています)
C++ソースファイルに以下のようなプログラムで
その5つの数を配列として読み込み表示させることはできたのですが
同じことを MFC AppWizard(exe) で作成しているプロジェクト内の
ピクチャーボックスの中に座標を指定して表示させたいのです。

#include <stdio.h>

FILE *fp;
main()
{
    int k[5];
    int n;
    fp=fopen("str3.txt","r");
    for(n=0; n<=4; n++){
        fscanf(fp,"%3d",&k[n]);
    }
    fclose(fp);

    for(n=0; n<=4; n++){
        printf("%3d\n",k[n]);
    }
}

変数を任意の座標に出力させることはできるので
(たとえば以下のような感じです
     for(n=0; n<=4; n++){
      ss.Format("%d",k[n]);
      GetDC()->TextOut(400,520+n*17,ss);
     }
)
読み込みがうまくいってないようです。    
ボタンをクリックしたらピクチャーボックス内に表示させるプログラムなのですが

void C(ファイル名)Dlg::OnButton1() 
{
    // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください

以下にFILE *fp;以降のプログラムを書き込んだところ
  'main' : 定義されていない識別子です。
というエラーがでたのでmainの前にvoidを挿入してみました。すると今度は
  'main' : 関数は、クラス、構造体、共用体のローカル関数としては定義できません。
とのエラーがでました。
これは書き込む場所が悪いのでしょうか?
それともプログラムの内容に誤りがあるのでしょうか。
もしお分かりになる方がいらっしゃればアドバイスお願いします。

君は僕の太陽暦だ! 2002/10/28(月) 16:48:36
そのエラーってC2601ですよね。
まずは、そのエラー内容をヘルプでご覧になられては
いかがでしょうか?
アウトプットに出ているエラーの行にフォーカスを
あてて、F1キーを押してみるとヘルプがでますので。

がんばって!やれるところまで自力でやってみましょう!!

君は僕の太陽暦だ! 2002/10/28(月) 16:49:55
ごめんんさい、C2601を選択してF1キーのあやまりですた・・。

PATIO 2002/10/28(月) 17:01:33
うーん、

「関数とは?」

から勉強しないといけなそうな話ですね。
正直言ってそこまで知識がないのでは、
C言語の入門書を始めから読んでくださいと言うしかないです。

この内容では、C言語を一から説明してくれと言っているのと同じ意味ですから。

あと、C++ではC言語よりも関数に関するチェックが厳しくなっています。
プロトタイプ宣言が必要です。

プロトタイプって何という話でしたら、ますます入門書の熟読をお勧めします。

PAI 2002/10/28(月) 17:49:53
あと、ダイアログベースではなく、コンソールアプリを作成することをお勧めします。

古いスレッドには追加発言できません。