Win32API ファイルの書き込み、保存
Win32APIを使って、ファイルの保存ダイアログを表示→ファイルを指定→保存ボタンを押す→指定されたファイルに書き込む→指定したファイルを保存 というプログラムを作りたいと考えています。しかし、ファイルに書き込んだ後どう保存すればいいかわからないので教えてください。s[256]をfilename_fullに書き込んで保存したいです。この場合プログラムは抜粋したものなので、s[256]に文字が格納してあると考えてください。
char s[256];
FILE *fp;
static OPENFILENAME ofn;
static TCHAR filename_full[MAX_PATH]; // ファイル名(フルパス)を受け取る領域
static TCHAR filename[MAX_PATH]; // ファイル名を受け取る領域
// 構造体に情報をセット
ZeroMemory( &ofn, sizeof(ofn) ); // 最初にゼロクリアしておく
ofn.lStructSize = sizeof(ofn); // 構造体のサイズ
ofn.hwndOwner = hWnd; // コモンダイアログの親ウィンドウハンドル
ofn.lpstrFilter = _T("text(*.txt)\0*.txt\0All files(*.*)\0*.*\0\0"); // ファイルの種類
ofn.lpstrFile = filename_full; // 選択されたファイル名(フルパス)を受け取る変数のアドレス
ofn.lpstrFileTitle = filename; // 選択されたファイル名を受け取る変数のアドレス
ofn.nMaxFile = sizeof(filename_full); // lpstrFileに指定した変数のサイズ
ofn.nMaxFileTitle = sizeof(filename); // lpstrFileTitleに指定した変数のサイズ
ofn.Flags = OFN_OVERWRITEPROMPT; // フラグ指定
ofn.lpstrTitle = _T("名前を付けて保存");// コモンダイアログのキャプション
ofn.lpstrDefExt = _T("txt"); // デフォルトのファイルの種類
// 名前を付けて保存コモンダイアログを作成
if( !GetSaveFileName( &ofn ) )
{
MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK );
SendMessage( hWnd, WM_CLOSE, 0, 0 );
}else{
if((fp=fopen(filename_full,"w")) == NULL) {
MessageBox( hWnd, _T("エラー"), _T("エラー"), MB_OK );
SendMessage( hWnd, WM_CLOSE, 0, 0 );
exit(0); /* (3)エラーの場合は通常、異常終了する */
}
/*ここからがわかりません*/
/*s[256]をファイルに書き込んで、保存するプログラムを教えてください。
お礼
有難う御座いました。参考URLに色々あって今後の参考になります。感謝いたします。