• ベストアンサー

ファイルの読み込み方

brogieの回答

  • ベストアンサー
  • brogie
  • ベストアンサー率33% (131/392)
回答No.1

ヒントだけです。 まず、ファイルポインタの宣言をします。 FILE *fp; ファイルをオープンします。 if( (fp = fopen(filename,"r") == NULL)     ファイルがオープンできなかったというメッセージを表示して、終了させる。 ファイルを読み込む whie(fgets(buf,sizeof(buf),fp)!=NULL){    printf("%s",buf);    ......... } fputs()も必要でしょう。 コンパイラは何をお使いですか? 小生からは以上です。

chikako-imagawa
質問者

補足

unixを使っています・・・・・頑張って考えてみます。

関連するQ&A

  • 多数ファイルの比較

    java初心者の者です。ちょっとしたことで、仕事でjavaを使ってファイル(txt)から単語を抜き出して、他のファイルの単語と比較するという作業をやりたいと思っています。ファイルの中身は行ごとにわかれており、その行に単語がスペースをあけてならべられています。そして、ファイルと他のファイルの単語を行ごとに、総当りで比較しなければなりません。そしてファイルとファイルの近似値をだし、また違うファイルと比較、という風に比較していきます。しかもファイルは100以上あります。このような場合、javaではどうゆう風に比較するが一番効率がいいのでしょか? なんせ、勉強不足で配列とlistで比較する方法くらいしか思いつきません。なにとぞ、ご教授おねがいします。 file1.txt--- 単語1 単語2 単語3・・・ 単語5 単語4  単語6 単語7 単語8 ・ ・ ・

  • ファイルからの読み込み

    ファイルから文字を読み込むプログラミングについての質問です。 ファイルから文字を読み込んで出力したいのですが、ファイルの中身が 1 2 3 a c 3 5 6 ・・・ 1 4 y c d 4 のような感じになっています。各文字と文字の間はスペースで区切られており、2行目の文字はどこまで続くか分かりません。 この場合fscanf,fget関数を使ってファイルを読み込む時どのようなプログラムにしたら良いのでしょうか? 分かりづらい質問ですいません。

  • 複数のXLSファイルのうち、特定のセルだけに注目して文字列を検索したい

    複数あるExcelファイルの中から、特定の文字列が存在するファイルを検索して、そのファイル名を取得するというマクロを作成しています。 この検索時、検索するのはファイル全体ではなく、1シート目のこのセルというのを明示したいのですが、そのような方法はありますでしょうか? また、ファイルを明示的に開かないようにもしたいです。 簡単になら、FileSearchがありますが、これはどうやらフォルダまでは指定できますが、セルの場所までは指定できないみたいです。 ファイルをオープンにすると、可能でしょうけどそうなると処理が重くなりそうです。 また、ファイル全体を検索すると、いくつもの単語が引っかかる可能性があるので不可能です。 各単語を配列に格納して、どの単語と一致するのか調べ、一致した場合そのファイルと検索単語の配列が、同じ番号になるようにソートする、方法となります。 どのような関数を使ったら可能なのか、ヒントだけでもお教えいただけないでしょうか。 よろしくお願い致します。

  • ファイルからの全文読み込み

    ファイルから全文読み込むにはどのようにしたらよいのでしょう? ・1行あたり最大100文字まで ・何行あるか不明 ・すべて半角英数字 ・途中に半角スペースあり 全文読み出し、配列に取っておきたいと思いますが、 具体的にどうしたらよいのかわかりません。 fgetsですと最後の1行しか取れませんし・・

  • テキストファイルを二次元配列に

    お世話になります。 テキストファイルを1行ずつ読み込んで二次元配列に格納するプログラムですが、 //最大行数 #define LINE_MAX 10 //行内最大文字数 #define INPUT_MAX 128 char str[LINE_MAX][INPUT_MAX]; というようにして実現しています。 これを行数が分からないテキストファイルでも大丈夫なようメモリを動的に確保したいと考えています。 二つの次元の内、一つを動的に確保するにはどのようにしたら良いでしょうか。

  • ファイル読み込み

    配列の中身の値をテキストファイルからリダイレクトを使わずに読み込めるようにするためにはどうすればよいのでしょうか??

  • 連想配列(ハッシュ)のファイルへの書き込み方

    連想配列(ハッシュ)のファイルへの書き込み方と、 そのファイルからの読み込み方で困っています。 たとえば以下のような連想配列(ハッシュ)があって %colorFile = ( 'red'=>'5', 'green'=>'10', 'blue'=>'3' ); この情報をサーバーの color.dat ファイルに書き込んで保存し、 変更があったときにファイルからデータを読み込むには どのようにしたらいいのでしょうか? 連想配列(ハッシュ)のまま保存すると color.datの中身が green10blue3red5 のようになってしまい、 読み込んだときに連想配列(ハッシュ)に復元できません…。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • ファイルの読み込みとメモリ確保について。

    ファイルから文字を読み込んで それを配列に入れて辞書順にソートさせようとしています。 それで、ソート以前の問題なのですが、ファイルから文字列を読み込んで配列にいれようとするのですが、 buffを動的にメモリ確保してその配列に入れたいと考えているのですが、なぜか入ってくれません。 whileでファイルの終わりがくるまで一行ずつ読み込んで それをsに入れていき、sをbuff[]の配列に順番にいれていこうとしているのですが・・・。 ファイルは aaaa aabc dda wer zie ced sdfe be など適当な文字の並びです。 malloc関数で動的に確保したメモリはその後普通の配列と同様に使えるのではなかったのでしょうか? なので普通にbuff[i]=s;といった処理で入れれると思ったのですが。 ファイルは一行の長さの最大が100で 行数が4000行あると仮定しています。 今は小さいファイルでテストしていますが。 以下ソースです。 #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 #define MAX_LINE 4000 main() { FILE *fp; char *buff,s[MAX_SIZE]; int i; fp=fopen("words.txt","r"); buff=(char*)malloc(sizeof(char)*MAX_LINE); i=0; while(fgets(s,MAX_SIZE-1,fp)!=NULL){ buff[i]=s; printf("%s",buff[i]); i++; } fclose(fp); } とりあえずファイルの内容を配列に入れないとソートできないので、配列に全て入れてしまいたいと考えています。 間違いがどこにあるのか指摘よろしくおねがいします。m(-_-)m

  • perl 配列の要素数について

    配列の要素数について質問させていただきます。 プログラムの中で、以下のようにファイルの内容を1行ずつ読み込み、配列に入れています。  open (IN, "ファイル名");  @data = <IN>;  close (IN); こういった形で配列に入れていった場合、入れられる最大行数(=最大要素数)はどれくらいになるのでしょうか。 現在100万行のテキストファイルは、問題なく読み込めているようでした。 ご存知の方がおられましたら、ご回答いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • ファイルポインタが動かない・・・

    ファイルポインタがfgetしても動かなくなるような宣言の仕方や 引数の渡し方ってあるのでしょうか? C言語で書いたプログラムです(長いので構造を書きます) わかりにくければ補足します。 #include"stdio.h" static FILE fp1; main() { 変数宣言うんぬん プロトタイプ宣言うんぬん fopen(.....); a = kansuu; fclose; } int kansuu() 変数宣言うんぬん for(i=0;i<3;i++) { x=fgetc(fp1); printf("%d-%d\n",x,ftell(fp1)); } ファイルには 0123456789 出力が 0-0 0-0 0-0 ってなるんです Seek関数(SEEK_CURとか)を使うとファイルポインタは動きます。 お願いします。