• ベストアンサー

ファイル入出力

またまた質問させていただきます。 下のような構造体の配列をファイルに出力したり、またファイルから入力したいのですが、どうすればいいのでしょう?? struct person { char name[30]; char tel[30]; char addr[30]; }; main() { ・ ・ while(a=='y') { struct person friend[20]; scanf("%ls",friend[i].name); scanf("%ls",friend[i].tel); scanf("%ls",friend[i].addr); scanf("%s"&a) i=i+1; } ・ ・ }

質問者が選んだベストアンサー

  • ベストアンサー
  • Herolin
  • ベストアンサー率100% (2/2)
回答No.2

構造体でもその配列でも、 sizeof()演算子に与えれば その合計サイズ(バイト数)を返してくれます。 バイト数が得られたら、低水準入出力関数の read()とwrite()が便利かと思います。 ※構造体の実行時サイズは処理系により 異なる場合があります。例えば、ご質問の ソースリストの場合、構造体personのサイズは 90バイト、その要素を20持つ配列friendのサイズは 1800バイトになるとは限りません。 必ずsizeof()演算子を通しましょう。

minustarsdesu
質問者

お礼

なるほど!詳しく教えていただいてありがとうございます!まだ初心者なのでいろいろ調べてやってみます☆

その他の回答 (1)

回答No.1

fwriteで書き、freadで読みます。

minustarsdesu
質問者

お礼

ありがとうございます!やってみます!

関連するQ&A