2002
Chicago
Adrien Brody
The Pianist
Nicole Kidman
The hours

2001
A Beautiful Mind
Denzel Washington
Training Day
Halle Berry
Monster's Ball

2000
Gladiator
Russell Crowe
Gladiator
Julia Roberts
Erin Brockovich



fopenでこのようなファイルのデータを取り込み、
構造体に格納したいのですが
どうすればいいのでしょう・・・

A 回答 (2件)

構造体をどう設計しているか不明なので適切な答えができませんね。

。。
とりあえず、適当なサンプルです。(データを入れたファイルのファイル名はdata.txt)
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define NAME_SIZE 40
#define DATA_SIZE 100
struct academy {
 int year;
 char picture[NAME_SIZE];
 char actor[NAME_SIZE];
 char actor_cast[NAME_SIZE];
 char actress[NAME_SIZE];
 char actress_cast[NAME_SIZE];
} data[DATA_SIZE];

int main(void) {
 char buf[100];
 int cnt,i;
 FILE *fp;
 if ((fp=fopen("data.txt","r"))==NULL) {
  printf("file open error\n");
  return -1;
 }
 for (cnt=0; cnt<DATA_SIZE; cnt++) {
  do {
   if (fgets(buf,sizeof buf,fp)==NULL) goto INPUT_SKIP; /* 1行読む。ファイル終端なら二重ループから出る */
  } while(isdigit(buf[0])==0); /* 先頭文字が数字以外なら次の行 */
  sscanf(buf,"%d",&data[cnt].year);
  if (fgets(buf,sizeof buf,fp)==NULL) break;
  strncpy(data[cnt].picture,strtok(buf,"\n"),NAME_SIZE-1);
  if (fgets(buf,sizeof buf,fp)==NULL) break;
  strncpy(data[cnt].actor,strtok(buf,"\n"),NAME_SIZE-1);
  if (fgets(buf,sizeof buf,fp)==NULL) break;
  strncpy(data[cnt].actor_cast,strtok(buf,"\n"),NAME_SIZE-1);
  if (fgets(buf,sizeof buf,fp)==NULL) break;
  strncpy(data[cnt].actress,strtok(buf,"\n"),NAME_SIZE-1);
  if (fgets(buf,sizeof buf,fp)==NULL) break;
  strncpy(data[cnt].actress_cast,strtok(buf,"\n"),NAME_SIZE-1);
 }
INPUT_SKIP:
 printf("%d件読み込みました\n",cnt);
 for(i=0; i<cnt; i++) {
  printf("%d\n[%s]\n[%s]\n[%s]\n[%s]\n[%s]\n\n",
   data[i].year,data[i].picture,data[i].actor,data[i].actor_cast,data[i].actress,data[i].actress_cast);
 }
 fclose(fp);
 return 0;
}
    • good
    • 0

>どうすればいいのでしょう・・・


と言われても・・・
というのが多くの人の感想です。
まずは何がわからないのか整理してください。

質問をする前に、わからなくてもいいので自分の思った通りにプログラムを書いてみましょう。
その上でコンパイルが通らなかったり、プログラムを実行して期待通りの動きをしなかったら質問しましょう。
    • good
    • 0

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

今、見られている記事はコレ!

  • 基本情報技術者試験の言語ってどうやって選ぶ?

    SEを目指す場合、基本情報技術者試験を経て実務に就いた人も多いのではないでしょうか。教えて!gooにはSEを目指している質問者からこんな質問が寄せられました。 「基本情報技術者試験のC言語とJavaの違い?」 将...

  • 【100均グッズで!】カラフルクレヨンキャンドルを作ってみた

    市販されているキャンドルには、自分好みの色合いや、好きな形状のものなど、なかなかピッタリのものが見つからないという人も多いことだろう。自分で手作りしてみるのもありかもしれないと、そのやり方を「教えて!...

  • 不倫相手に5年ぶりに連絡したらフラれた

    常に世間の大きな関心ごととなる著名人の不貞問題。一般家庭の不倫に対してもそれは同じようで、「教えて!goo」によせられた「人は5年も経つと心は変わってしまうのでしょうか?」という質問には多くの回答が書き込...

  • 【長谷川豊】『名無しです』さんから来たメッセージ

    先日、私が別でやっている連載に対して、極めて分かりやすく、的を射たコメントが来たので是非「教えて!goo」の連載でもシェアしたいと思います。 私は沖縄で起きた痛ましい女性の暴行死事件の記事に関連して、あ...

  • おしゃれは世代を越えて。多様化する死装束の中にはドレスも!?

    日本では亡くなった人間が、現世に禍根を残していると「うらめしや~」というように幽霊になって出てくると言われている。幽霊について伝統的なイメージといえば、頭に巻いた三角の布に、真っ白な死装束、そして足が...

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ