teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

自分で書いてみたコードです

2017/12/18 05:34

投稿

Tatsumin
Tatsumin

スコア11

title CHANGED
File without changes
body CHANGED
@@ -25,4 +25,59 @@
25
25
  実行結果
26
26
  A[0]: Taro Ishi(20), 174.3
27
27
  A[1]: Hanako Ishi(19), 156.8
28
- A[2]: Ichiro Seigo(22), 170.2
28
+ A[2]: Ichiro Seigo(22), 170.2
29
+
30
+
31
+ 自分で書いてみたコードです。(追加しました)
32
+
33
+ ```C言語
34
+
35
+ #include <stdio.h>
36
+ #include <stdlib.h>
37
+
38
+ #define N 3
39
+ #define LGT 21
40
+
41
+ typedef struct{
42
+ char name[LGT];
43
+ int age;
44
+ double height;
45
+ }student_t;
46
+
47
+ void input(char fname, student_t *p);
48
+ void show(student_t *p);
49
+
50
+ int main(){
51
+ student_t A[N];
52
+ char fname[LGT] = "input2.txt";
53
+
54
+ input(fname, &A);
55
+
56
+ show(&A);
57
+
58
+ return 0;
59
+ }
60
+
61
+ void input(char fname, student_t *p){
62
+ FILE *fp;
63
+ int i;
64
+
65
+ if((fp = fopen(fname, "r")) == NULL){
66
+ printf("\aNot Open");
67
+ exit(1);
68
+ }
69
+ for(i = 0; i < N; i++){
70
+ while(((p->name)[i] = fgetc(fp)) != '\0');
71
+ fscanf(fp, "%*c%d", (p->age)[i]);
72
+ fscanf(fp, "%*c%lf", (p->height)[i]);
73
+ }
74
+ }
75
+ void show(student_t *p){
76
+ int i;
77
+
78
+ for(i = 0; i < N; i++){
79
+ printf("A[%d]: %s(%d), %f\n", i, (p->name)[i], (p->age)[i], (p->height)[i]);
80
+ }
81
+ }
82
+
83
+ ```