ボタンをおすと以下の
ifstream fin;
CFileDialog f(TRUE);
if(f.DoModal()==IDOK){
fin.open(f.GetFileName());
if(fin.fail()){
AfxMessageBox(ファイルをオープン出来ません);
fin.close();
}
char buf[20];
m_sEdit=";
while(fin.getline(buf,20)){
m_sEdit=m_sEdit+buf+\r\n;
}
fin.close();
UpdateData(FALSE);
}
}
ようにしてエディットボックスに選択したファイルを表示させて、
さらに他のボタンで
CString ss;
m_sEdit.GetWindowText(ss);
として文字列を取得したいのですが、CStringの宣言を確認してくださいとエラーがでてしま
います。m_sEditに表示させるとこまではうまくいきます。どこが間違っているのでしょう
か?
ちなみに、この先はssの内容を配列にいれて計算をさせたいです。例えば
1 1
2 2
3 3
4 4
5 5
などというデータの行列計算等です。
エディットボックスの内容はm_sEditに既に入っているはずなので、
ss=m_sEdit;
で良いのでは?
ボタンを押す前にエディットボックスが更新されている可能性があれば、
UpdateData(TRUE)を実行しておきます。
GetWindowTextはCWndの派生クラスに使用するものです。
ありがとうございました。できました。
さらに教えていただきたいのですが、
ssに入れた文字列を配列に格納したいのです。
計算したいので、文字列を数値に変換しないといけないと思うのですが
どうやったらいいのでしょうか?
ひとつの値であればfscanf(ss,%d,&n)などとやればいいいんですよね?
これの配列への応用の仕方がわからないのです。。。。
GetDlgItemInt()を使ってみてはいかがでしょうか。
int num = GetDlgItemInt(IDC_EDIT);
解決しました。ありがとうございます。