質問編集履歴

1

ソースコード書き直しました.タイトル修正しました.

2021/07/28 07:26

投稿

RyoBaya
RyoBaya

スコア1

test CHANGED
@@ -1 +1 @@
1
- が起きて困ってす.
1
+ 構造体を用いてファイルの中身を表示させるプロラムを作成したす.
test CHANGED
@@ -22,25 +22,7 @@
22
22
 
23
23
  ./NSP [~/Desktop/NRP]
24
24
 
25
- 従業員:A,14,4320,3360,5,2,2,1
26
25
 
27
- 1日の最大労働時間: 1949171965分
28
-
29
- 1日の最小労働時間: 2103602715分
30
-
31
- 最大の連勤回数: 1832319160回
32
-
33
- 最小の連勤回数 1832319160回
34
-
35
- 従業員:(null)
36
-
37
- 1日の最大労働時間: 1832318992分
38
-
39
- 1日の最小労働時間: 1分
40
-
41
- 最大の連勤回数: 1832319192回
42
-
43
- 最小の連勤回数 1832319192回
44
26
 
45
27
  zsh: segmentation fault ./NSP
46
28
 
@@ -70,7 +52,7 @@
70
52
 
71
53
  typedef struct{
72
54
 
73
- char *ID;//従業員ID
55
+ char ID;//従業員ID
74
56
 
75
57
  int MaxShifts;//作成する稼働表の日数.ここでは14日
76
58
 
@@ -94,6 +76,8 @@
94
76
 
95
77
  int i,mt;
96
78
 
79
+ int m,n,o,p,q,r,s,t; //ファイルの受け取り
80
+
97
81
  FILE *fp;
98
82
 
99
83
  employee_time_info staff[MAX_STAFF];//構造体の宣言
@@ -108,21 +92,39 @@
108
92
 
109
93
  }
110
94
 
111
- for(i=0;i<MAX_STAFF;i++){
95
+ for(i=0;i<MAX_STAFF;i++){
112
96
 
113
- if(fscanf(fp,"%s %d %d %d %d %d %d %d\n",staff[i].ID,&staff[i].MaxShifts,staff[i].MaxTotalMinutes,staff[i].MinTotalMinutes,&staff[i].MaxConsecutiveShifts,&staff[i].MinConsecutiveShifts,&staff[i].MinConsecutiveDaysOff,&staff[i].MaxWeekends)!=8)break;
97
+ if(fscanf(fp," %s ,%d ,%d ,%d ,%d ,%d ,%d ,%d\n",staff[i].ID,&staff[i].MaxShifts,staff[i].MaxTotalMinutes,staff[i].MinTotalMinutes,&staff[i].MaxConsecutiveShifts,&staff[i].MinConsecutiveShifts,&staff[i].MinConsecutiveDaysOff,&staff[i].MaxWeekends)!=8)break;
114
98
 
115
99
  }
116
100
 
117
101
  fclose(fp);
118
102
 
103
+
104
+
105
+ /* for(i=0;i<MAX_STAFF;i++){
106
+
107
+ printf(" 従業員:%s \n1日の最大労働時間: %d分\n 1日の最小労働時間: %d分\n 最大の連勤回数: %d回\n 最小の連勤回数 %d回\n",staff[i].ID,staff[i].MaxShifts,staff[i].MaxTotalMinutes,staff[i].MinConsecutiveShifts,staff[i].MinConsecutiveShifts);
108
+
109
+ }*/
110
+
119
111
 
120
112
 
121
113
  for(i=0;i<MAX_STAFF;i++){
122
114
 
123
- printf("従業員:%s \n 1日の最大労働時間: %d分\n 1日の最小労働時間: %d分\n 最大の連勤回数: %d回\n 最小の連勤回数 %d回\n",staff[i].ID,staff[i].MaxShifts,staff[i].MaxTotalMinutes,staff[i].MinConsecutiveShifts,staff[i].MinConsecutiveShifts);
115
+ printf("従業員: %s\n",staff[i].ID);
116
+
117
+ printf("1日の最大労働時間: %d\n",staff[i].MaxShifts);
118
+
119
+ printf("1日の最小労働時間: %d分\n",staff[i].MinConsecutiveShifts);
120
+
121
+ printf("最大の連勤回数: %d回\n ", staff[i].MaxConsecutiveShifts);
122
+
123
+ printf("最小の連勤回数: %d回\n",staff[i].MinConsecutiveShifts);
124
124
 
125
125
  }
126
+
127
+
126
128
 
127
129
  return 0;
128
130