QNo.4191217 ライブラリ関数について教えてくださいの質問をした者です。
質問を連投するのは気が引けたのですが、
どうしても分からなかったのでまた質問させてください・・・
ファイルの中のデータと配列データが一致するかを調べるプログラムを作ろうとしています。
前質問で、ライブラリ関数について教えていただき
以下のようにプログラムを作成してみました。
しかし、これだと結果が何も出力されませんでした・・・
何が間違っていて、どうすればいいのか詳しく教えていただけないでしょうか。
よろしくお願いします。
#include<stdio.h>
struct test {
char no[5];
char name[10];
char english[5];
char math[5];
};
int main(void){
FILE *fp;
int i;
char f_no[5], f_name[5];
struct test data[5] = {
{"001","akemi","100","40"},
{"002","tadao","59","76"},
{"003","mika","94","69"},
{"004","hiroshi","54","98"},
{"005","kazu","39","57"}
};
struct test *test_p;
test_p = data;
if ((fp = fopen("test.txt", "r")) == NULL) {
printf("NOT OPEN FILE\n");
}
else {
while (fscanf(fp, "%s%s", f_no, f_name) == 2) {
for(i = 0; i<=5; i++) {
if((strcmp(test_p->no,f_no)==0) && (strcmp(test_p->name,f_name)==0) {
printf("%s %s 英語%s 数学%sです。\n", f_no, f_name, test_p->english, test_p->math);
}
else {
printf("%s %s 一致しません\n", f_no, f_name);
break;
}
++test_p;
}
}
}
fclose(fp);
}
test.txtの中身
001 akemi
002 kazuo
003 tadashi
005 mika
006 xxx
お礼
うわわ、ありがとうございます! 謎が解けました><。。 言われてみればなぁんだって感じですね(笑) わざわざありがとうございました!