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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- C言語・C++・C# C言語 2 2022/07/21 00:02
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- JavaScript json形式データのデータ連携について 4 2022/04/05 23:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エラーがわかりません、、
-
ファイルへの書込み処理が異常...
-
c言語 ファイルから数字を読み...
-
ファイルに行番号を追加
-
c言語でのfscanfについて
-
ガンマ変換 C言語でプログラ...
-
ファイルの特定行の抽出
-
ファイル読み込み EOF 判定
-
Cで文字列の分割
-
2÷3などの余りについて
-
C言語で%を使わない余りの出し方
-
比較回数と交換回数表示について
-
信頼区間の1.96や1.65ってどこ...
-
nCmの関数
-
複数桁10進数の*桁目だけを抽出...
-
Notepad++の関数リスト表示の変...
-
C言語のfor文です。 繰り返しの...
-
break文でループを一気に抜ける...
-
正負を反転させて出力するプロ...
-
#define _CRT_SECURE_NO_WARNIN...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c言語でのfscanfについて
-
C言語でファイル読み書きを早く...
-
fopenでファイル名に、変数を使...
-
複数ファイルの同時読み込みの...
-
fgets( ) の返り値は何?
-
テキストファイル内に対して, ...
-
ファイルへの書込み処理が異常...
-
C言語にてXMLファイルから任意...
-
ファイル出力で改行を入れたい!
-
C言語でセグメンテーションエ...
-
エラーがわかりません、、
-
ガンマ変換 C言語でプログラ...
-
自己相関関数を求めるプログラ...
-
VisualStudioでのファイルの入...
-
同時にファイル読み込み 書き込み
-
c言語 ファイルから数字を読み...
-
大量の入力ファイルを扱うとき...
-
ファイルが読み込めない・・・
-
【C言語】ファイルを読み込んで...
-
a*(1-exp(-bx))+cの近似の方法
おすすめ情報