アプリ版:「スタンプのみでお礼する」機能のリリースについて

Cプログラムの問題なのですが、
「複数の文字からなるファイルを読み込み、全て読み込んだ後に表示するプログラムを作成したいと思います。あらかじめ文字列を配列として宣言するのではなく、文字列の長さを確認した上で、malloc()標準関数でメモリを割り当て、表示しなさい」
文字列を宣言せずに、どうやったらファイルの中の文字列を読み込むことができるのでしょうか?その上、文字列の長さを確認したあとmalloc関数を使うにはどうすればいいのでしょうか。
どなたか教えてください。お願い致します。

A 回答 (2件)

> どうやったらファイルの中の文字列を読み込むことができるのでしょうか?



一文字ずつ読んでゆきます。一行の長さが分かった後に、もう一度、読み直さ
なくてはいけないので、行の頭がどの位置か憶えておく(*)必要があります。

  (*) マニュアルの ftell(), fseek() のあたりを調べてください。

malloc() は、指定したサイズのメモリを割り当てるライブラリ関数です。
マニュアルを読めば分かると思いますが、

  char *buf;
  buf = malloc(必要なサイズ);

です。文字列に必要なサイズに終端の '\0' の分があることに気をつけて。
    • good
    • 0

ファイルがテキストファイル限定なら…



ファイルサイズを直に使えばよいのでは?
文字列にするには終端NULL文字が必要な事,ファイルにはEOFがくっついている事をわすれないように。
ファイル読み込みにはread関数を使いましょう。

mallocですが,普通に使えばよいですよ。

参考URL:http://www.linux.or.jp/JM/html/LDP_man-pages/man …
    • good
    • 0

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