プログラムの変更下記のプログラムを、ファ

質問

プログラムの変更下記のプログラムを、ファイルから商品データを読み込んだ後にキーボードから任意の商品コードを入力し、商品コードが一致するレコードのみを出力して終了する
というようにプログラムを書き換えていただけないでしょうか?#include<stdio.h>#include<stdlib.h>int main(void){ struct merchandise { char code[10]; char name[40]; int price; } m_data[100]; int i; FILE *fp; if((fp=fopen("gifts.dat","r"))==NULL) { printf("ファイルが見つかりません: gifts.dat¥n"); exit(EXIT_FAILURE); } for(i=0;i<100;i++){ if(fscanf(fp,"%s %s %d", m_data[i].code,m_data[i].name,&m_data[i].price) != EOF) printf("%s %s %d¥n", m_data[i].code,m_data[i].name,m_data[i].price); } fclose(fp); return 0;}ファイルの中身は商品コード : JZK-30商品名 : Jizake_tsumeawase値段 : 4500商品コード : BSP-15商品名 : Body_soap_set値段 : 3000です

ベストアンサー

/*商品検索:_課題の範囲で作ってあります
実際には、見つからない時のメッセージ、格納したデータの商品コードの昇順に最整列、などなど、あれこれ必要になります
*/#include<stdio.h>#include<stdlib.h>int_main(void)_{__struct_merchandise_{____char__cd[10];____char__nm[40];____int___pr;__}_mdt[100];__char__cd[10];__char__nm[40];__int___pr;__int___i,n;__//char__*fnm="gifts.dat";__char__*fnm="test.txt";__FILE__*fp;__if((fp=fopen(fnm,"r"))==NULL)_{____printf("ファイルが見つかりません:_%s¥n",fnm);____exit(EXIT_FAILURE);__}__n_=_0;__while(fscanf(fp,"%s%s%d",cd,nm,&pr)_!=_EOF)_{____if(n==100)_{______printf("mdt-table_オーバーフロー¥n");______exit(EXIT_FAILURE);____}____strcpy(mdt[n].cd,cd);____strcpy(mdt[n].nm,nm);____mdt[n].pr_=_pr;____n++;__}__fclose(fp);__printf("商品コード?>_");__scanf("%s",cd);__for(i=0;i<n;i++)_{____if(strcmp(mdt[i].cd,cd)_==_0)_{______printf("商品コード_:_%s¥n",mdt[i].cd);______printf("商品名_:_%s¥n",mdt[i].nm);______printf("値段_:_%d¥n",mdt[i].pr);____}__}__return_0;}/*_出力:商品コード?>_BSP-15商品コード_:_BSP-15商品名_:_Body_soap_set値段_:_3000*/

類似の質問

ファイナンシャルプランナー 合格率