
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でこのようなファイルのデータを取り込み、
構造体に格納したいのですが
どうすればいいのでしょう・・・
No.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;
}
No.1
- 回答日時:
>どうすればいいのでしょう・・・
と言われても・・・
というのが多くの人の感想です。
まずは何がわからないのか整理してください。
質問をする前に、わからなくてもいいので自分の思った通りにプログラムを書いてみましょう。
その上でコンパイルが通らなかったり、プログラムを実行して期待通りの動きをしなかったら質問しましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fopenでファイル名に、変数を使...
-
複数ファイルの同時読み込みの...
-
OpenGLによる描画内容をBMP出力
-
CRC32の計算方法
-
二分探索木への挿入
-
C言語 連番データの読み込み
-
fscanfでループしてしまう。
-
InternetReadFileを使ったファ...
-
「Aに対するBの割合」と「Aに対...
-
Aの値からBの値を除するとは??
-
20'(角度)の計算がわかりま...
-
Enterキーを押されたら次の処理...
-
iconv_open失敗
-
エラー 添字が付けられた値が、...
-
信頼区間の1.96や1.65ってどこ...
-
「指定されたキャストは有効で...
-
有効数字について 以前質問をし...
-
EXCELの分散分析表のP-値が....
-
C言語で分からないところがあり...
-
C言語 エラーの原因がわからな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイル内に対して, ...
-
複数ファイルの同時読み込みの...
-
C言語でファイル読み書きを早く...
-
ファイル出力で改行を入れたい!
-
なぜCSQとCIP形式ではコ...
-
fopenでファイル名に、変数を使...
-
c言語でのfscanfについて
-
C言語にてXMLファイルから任意...
-
_popen() のエラー取得
-
数値のみ抽出(C言語)
-
ランダムアクセスができない
-
C言語でのCSVソートとデータ抽...
-
C言語 連番データの読み込み
-
ファイルの作成・書き込み・読...
-
fscanfでループしてしまう。
-
ファイルへの書込み処理が異常...
-
ファイルを読み込んで条件式を...
-
CSVファイルを読み込み構造体の...
-
C言語でセグメンテーションエ...
-
C言語について
おすすめ情報