fork download
  1. //次のような家計簿データkakeibo.datがテキストでかかれてあり、中身を見ると
  2. //meat 125 1
  3. //rice 2000 1
  4. //juice 110 10
  5. //となっているものとする。このデータを構造体の中に組み込んで、様々な処理に
  6. //使用したい。そこでひとまず、このファイルを構造体の配列に読み込む関数
  7. //void readData(FILE *fp,struct BOOK *book)を完成させたい。以下のプログラムを
  8. //コンパイルがとおり、目的の動作をするように直接書き込みなさい。
  9. //(どこを補うべきかも考えること)ただしkakeibo.datに書かれてある単価と数量の
  10. //セットは100セットあることが予めわかっているものとする。
  11.  
  12. #include<stdio.h>
  13. #include<stdlib.h>
  14.  
  15. #define FILENAME "kakeibo.dat"
  16.  
  17. struct BOOK {
  18. char item[100];
  19. int tanka;
  20. int suryou;
  21. };
  22. void readData(FILE *fp, struct BOOK *book);
  23.  
  24. int main(void) {
  25. struct BOOK mybook[100];
  26. int i;
  27. FILE *fp;
  28.  
  29. if((fp = fopen(FILENAME,"r"))==NULL) {
  30. fprintf(stderr,"%s is not found!\n",FILENAME);
  31. exit(1);
  32. }
  33.  
  34. readData(fp, mybook);
  35. fclose(fp);
  36.  
  37. for (i = 0; i < 100 ; i++) {
  38. printf("%s,%d x %d\n", mybook[i].item, mybook[i].tanka, mybook[i].suryou);
  39. }
  40. return 0;
  41. }
  42.  
  43. void readData(FILE *fp, struct BOOK *book) {
  44.  
  45. while (fscanf(fp, "%s %d %d", book->item, &book->tanka, &book->suryou) != EOF)
  46. book++;
  47. }
  48.  
Runtime error #stdin #stdout 0.01s 1848KB
stdin
Standard input is empty
stdout
Standard output is empty