質問編集履歴
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
|
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
|
-
|
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
|
-
|
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
|
|