• ベストアンサー

一行データから構造体・配列への格納処理について

初めて投稿します。 ▲実現したい処理内容 1)ファイルを読み込む。 2)読み込んだデータを独自定義した構造体データ配列に格納する。 3)格納した構造体データをパラメータに引き渡す。 ▲ファイルデータについて ・連続した文字列(カンマなどの区切りはなし) ・一行のみ --------10--------20--------30 abcdefgあいうえ123456789012 ▲条件 構造体を使う以外になし ▲状況 今のところ、自分でわかっているのは >2)読み込んだデータを独自定義した構造体データ配列に格納する。 の処理で、 ************************************************************** <最終的に渡すパラメータの型やサイズは決まっているので、 決まった文字サイズでデータから文字を切り出し、操作して パラメータへ渡す>処理で実現できる ************************************************************** なんですが、 構造体を使うロジックで実現しようとし、 関数は freadが適当であるということをアドバイスされましたが、 リファレンスの内容が理解できず困っています。 ファイルを開いて、 char buffer[256]; fgets(buffer, sizeof(buffer), fp); でbufferに文字列を格納する部分までは実現&理解できております。 ご教示いただければ幸いです。 よろしくお願い致します。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>関数は freadが適当であるということをアドバイスされましたが、 fwriteを使って書き出したなら、freadを使うのがいいというような意味では? 別にfreadにこだわらなくても、fgetsで一行読み込みで読み込んでいるのだから、それから構造体メンバにコピーすればいいと思う。 >決まった文字サイズでデータから文字を切り出し… strncpyとか、memcpyを使えばいいと思うけど

take_off090
質問者

お礼

回答ありがとうございます。 今回は、ファイルがもともとあり、そのファイルを オープン&リードする処理です。 > ...構造体メンバにコピーすればいいと思う。 先ほど答える!ANo.1でも回答致しましたが、 ソースでの実現ができておりません。 > strncpyとか、memcpyを使えばいいと思うけど そうですね。文字切り出しについては、 書いていただいた関数を使用することで いけると思います。 今まで、VBしか言語経験しかなく、 CでのPGM製造で改めてCでのデータの考え方や データ型、コードの難しさを身にしみています・・・(;´Д`)ウウッ…

その他の回答 (1)

  • g_vikke
  • ベストアンサー率16% (15/90)
回答No.1

結局、2)をしたいのか、freadの使い方がわからないのかどっちだろ? バッファに入れるまでは出来てるんでしょ? バッファから構造体へコピーしたらいいだけじゃないの? 1つ1つでもいいし、構造体1バイトパック前提で、一括でコピーでもいいし。 それともコピーの仕方がわからない?

take_off090
質問者

お礼

回答ありがとうございます。 > 結局、2)をしたいのか、freadの使い方がわからないのかどっちだろ? Freadの使い方がわかりません。 引数は何を入れるかも良く理解できていません。 作るための仕様(処理順)は理解している状態です。 > それともコピーの仕方がわからない? はい、現状ではソースでの実現の仕方がわかりません。 投稿の後、基礎から確認しています。

関連するQ&A