重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

初めて投稿します。

▲実現したい処理内容
1)ファイルを読み込む。
2)読み込んだデータを独自定義した構造体データ配列に格納する。
3)格納した構造体データをパラメータに引き渡す。

▲ファイルデータについて
・連続した文字列(カンマなどの区切りはなし)
・一行のみ
--------10--------20--------30
abcdefgあいうえ123456789012

▲条件
構造体を使う以外になし

▲状況
今のところ、自分でわかっているのは
>2)読み込んだデータを独自定義した構造体データ配列に格納する。
の処理で、
**************************************************************
<最終的に渡すパラメータの型やサイズは決まっているので、
決まった文字サイズでデータから文字を切り出し、操作して
パラメータへ渡す>処理で実現できる
**************************************************************
なんですが、
構造体を使うロジックで実現しようとし、
関数は freadが適当であるということをアドバイスされましたが、
リファレンスの内容が理解できず困っています。

ファイルを開いて、
char buffer[256];

fgets(buffer, sizeof(buffer), fp);
でbufferに文字列を格納する部分までは実現&理解できております。

ご教示いただければ幸いです。
よろしくお願い致します。

A 回答 (2件)

>関数は freadが適当であるということをアドバイスされましたが、


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

回答ありがとうございます。
今回は、ファイルがもともとあり、そのファイルを
オープン&リードする処理です。

> ...構造体メンバにコピーすればいいと思う。
先ほど答える!ANo.1でも回答致しましたが、
ソースでの実現ができておりません。

> strncpyとか、memcpyを使えばいいと思うけど
そうですね。文字切り出しについては、
書いていただいた関数を使用することで
いけると思います。

今まで、VBしか言語経験しかなく、
CでのPGM製造で改めてCでのデータの考え方や
データ型、コードの難しさを身にしみています・・・(;´Д`)ウウッ…

お礼日時:2005/08/25 01:04

結局、2)をしたいのか、freadの使い方がわからないのかどっちだろ?



バッファに入れるまでは出来てるんでしょ?
バッファから構造体へコピーしたらいいだけじゃないの?
1つ1つでもいいし、構造体1バイトパック前提で、一括でコピーでもいいし。

それともコピーの仕方がわからない?
    • good
    • 0
この回答へのお礼

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

> それともコピーの仕方がわからない?
はい、現状ではソースでの実現の仕方がわかりません。

投稿の後、基礎から確認しています。

お礼日時:2005/08/25 00:57

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