都道府県穴埋めゲーム

構造体にファイルからデータを直接、読みこませたい時、pack-structパラメータを付けてコンパイルしますが、その時、stat関数を使用しているとstat構造体のデータがずれてうまく動作しません。pack-structパラメータを使用してコンパイルしてもstatが正常に動作する方法があれば教えて下さい。

A 回答 (3件)

#1 の補足を読む限りでは, ファイルに出力するときとファイルから読み込むときで pack が同じであればいいような気がします.

pack しなくても (ゴミが書き出される/読み込まれるかもしれないだけで) 問題ないと思うのですが.
    • good
    • 0

#pragma pack(1)


#pragma pack()

で構造体を挟む
    • good
    • 0

状況がいまいち分かりませんが、ファイルにstat構造体の内容を書き込んでおいて、それをファイルから読み込もうとしているのでしょうか。


pack-structは必要ないように思いますが。

それにstat関数はpack-struct付きでコンパイルされてないですよね?

この回答への補足

まさに、stat関数がpack-structでコンパイルされていない事が問題なのですが。以下のようなプログラムの時、皆さんはどの様にされていますか。

typedef struct {
char a;
int b;
char c[10];
int d;
} _Sanple;

_Sanple SD;

int main(int argc, char **argv)
{
int fp;

if ((fp = open("sanple.dat", O_RDONLY)) == -1)
exit(1);

read(fp, (char *)&SD, sizeof(_Sanple));
printf("%c %d\n", SD.a, SD.b);

このプログラムが期待どうりに動作させようと思えばpack-structパラメータを付けてコンパイルしないといけないと思いますが、stat関数を使用しているとpack-structパラメータが使えません。色々とためしてみましたが中々うまくかないなで、なにか良い方法があればと
質問しました。

補足日時:2004/11/04 23:48
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!