現在、ファイルに書込む処理を施しています。
現在、以下のようなところまでいきました。
CFile file;
file.Open(ファイルのフルパス, 書込みモードで開く);
block bc; // グローバルで宣言した構造体
/* なお、この中には
struct block {
int x;
int y;
};
*/ があります。
そして、それを
bc.x = 1; // '1'は例
bc.y = 1; // 同上
とするのですが、これではどのファイルに書き込むか、ということがわからないのでイメージとしては
file.bc.x(y)としたいです。
こうするにはどうすればよいのでしょうか?
ご教授のほどよろしくお願いいたします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは。
要するにMFCのCFileクラスを作成し、fileインスタンスに対して、
CFile file;
file.x = 1;
file.y = 1;
見たいに、block構造体と同じメンバ操作をしたいのでしょうか。
一応CFileの下にあるCMemFileクラスが、メモリを扱えますが、此れだけでは使い物にならないので、このクラスか、CFileクラスをオーバーライド(または包含)して
http://msdn.microsoft.com/ja-jp/library/tzdxd4x0 …
以下のオペレータ
block* operator->()
block& operator*()
operator block&()
辺りをオーバーロードするしか無いかも知れません。
No.3
- 回答日時:
出力をどのようにしたいのでしょう
1) テキストファイルとして出力したいのか
2) 構造体のメンバーをバイナリ形式で出力したいのか
1)なら sprintfなどで文字列に整形してから Writeで出力
2)なら Writeに構造体のアドレスを渡して出力
1) ...
TCHAR chBuf[256];
sprintf( chBuf, "%8d %8d", bc,x, bc,y );
file.Write( chBuf, sizeof( chBuf ) );
2) ...
file.Write( &bc, sizeof( bc ) );
指定位置ということなら file.Seekで書き込み単位ごとの位置指定をすればいいでしょう
5レコード目に書き込むなら
1)の場合
file.Sheek( 5 * sizeof( chBuf ), CFile::begin );
2)の場合
file.Seek( 5 * sizeof( bc ), CFile::begin );
といった具合になります
No.2
- 回答日時:
構造体データを書き込むのでしたら、
ファイルをバイナリモードで読み書きする必要があります。
fopen, fwrite, freadで読み書きしてはいかがでしょうか?
参考URL:http://homepage3.nifty.com/mmgames/c_guide/17-02 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語のファイル入力が分かりません 2 2022/05/22 06:35
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- その他(コンピューター・テクノロジー) <a href="file:///フォルダ名/ファイル名">リンクテキスト</a>について 1 2023/04/06 22:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ある文字列を含む行の抽出
-
Excel.VBA テキストファイルを...
-
VB6側からテキストファイルをク...
-
VBAでPowerPointからExcelにデ...
-
fortranでのcsvファイルを出力...
-
VBSを用いてIPアドレスを取得し...
-
バッチでiniファイルの編集
-
VBAで新しい日付順にファイルを...
-
VBAで外部ファイル(HTMLソース...
-
特定フォルダ内のテキストファ...
-
複数行の文字列を変数として使...
-
テキストファイルを直接置換す...
-
BCPユーティリティの使用法_...
-
アンケート結果をcsv出力できる...
-
cobolのコメント削除
-
VB.NETでテキストファイルからH...
-
複数のCSVの指定行だけを残し、...
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
-
コマンドプロンプトのエラーに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6側からテキストファイルをク...
-
VBAで新しい日付順にファイルを...
-
VBAでPowerPointからExcelにデ...
-
特定フォルダ内のテキストファ...
-
BCPユーティリティの使用法_...
-
ある文字列を含む行の抽出
-
access vbaでCSVファイルを文...
-
テキストファイルを直接置換す...
-
複数行の文字列を変数として使...
-
テキストファイルの行頭に文字...
-
A列をテキストファイル名に、B...
-
バッチでiniファイルの編集
-
Excel.VBA テキストファイルを...
-
fortranでのcsvファイルを出力...
-
unicode文字列(日本語)のファイ...
-
RandomとBinaryモードの違い
-
ソースコードの差分がある行番...
-
c言語の問題です
-
C#でのファイル編集と上書き保...
-
VBAで任意のフォルダ内のファイ...
おすすめ情報