4.0 120
4.2 130
4.4 150
4.6 120
4.8 100
class CStep1View : public CView
{
protected: // シリアライズ機能のみから作成します。
CStep1View();
DECLARE_DYNCREATE(CStep1View)
// アトリビュート
public:
CStep1Doc* GetDocument();
//ここで変数宣言する
double x[100], y[100];
int ndata;
つぎに上のメニューバーの(すべてのクラスメンバ)とかかれているところをクリックし、ID_File_Openを選択します。その横の箱からCOMMANDを選択しクリックする(選択だけでなく必ずクリックする。)するとメンバ関数の追加というメッセージボックスが表示され関数名の入力画面になる。デフォルトはOnFileOpenとなっているのでこれでよければOKをクリックする。
問題のファイルからの入力ですが、ここではファイルストリームを使ってC++流でやってみます。
まず、ファイルストリームをつかうためにソースファイルの上のほうでfstream.hを読み込みます。
#include <fstream.h>
void CStep1View::OnFileOpen()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
CFileDialog filedlg(TRUE, "dat", "*.dat");
CString filename;
int nd;
nd=0;
if( filedlg.DoModal() == IDOK)
{
filename = filedlg.GetPathName();
ifstream mystream(filename);
while(!mystream.eof()) {
mystream >> x[nd] >> y[nd];
nd=nd+1;
}
ndata=nd-1;
mystream.close();
}
}
うえと同じような手順でID_FILE_SAVEのメッセージハンドラを用意します。以下のようにコード編集をする。
void CStep1View::OnFileSave()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
CFileDialog filedlg(FALSE, "dat", "*.dat");
CString filename;
if( filedlg.DoModal() == IDOK)
{
filename = filedlg.GetPathName();
ofstream mystream(filename);
for (int i=0; i < ndata; i++) {
mystream << x[i] << ' ' << y[i] << endl;
}
mystream.close();
}
}