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

質問編集履歴

1

コードの修正

2018/01/10 09:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -10,13 +10,10 @@
10
10
 
11
11
  ###発生している問題・エラーメッセージ
12
12
 
13
- 現状だと、入力時点で年/月/日を分けて入力しているので、計算部分も問題ないのです、「/」で区切って文字入力される場合どのようにコードを変更すべきかわからず困っています。
13
+ 現状だと、入力がされるだけっています。
14
14
  ```
15
+ % ./trial 2018/01/10
15
- % ./trial
16
+ 2018/1/10
16
- Year?2018
17
- Month?01
18
- Day?10
19
- Wednesday
20
17
  ```
21
18
 
22
19
  ###該当のソースコード
@@ -26,28 +23,21 @@
26
23
  #include <time.h>
27
24
  #include <string.h>
28
25
 
29
- int
30
- getint(void)
26
+ int main(int argc, char **argv)
31
27
  {
32
- char buf[BUFSIZ];
33
- fgets(buf, BUFSIZ, stdin);
28
+ int y, m, d;
29
+ sscanf(argv[1], "%d/%d/%d", &y, &m, &d);
30
+ printf("%d/%d/%d\n", y, m, d);
34
- return (atoi(buf));
31
+ return 0;
35
- }
36
-
37
- int
38
- main(void)
39
- {
40
32
  struct tm day;
41
33
  time_t time;
42
34
 
43
35
  char *Week[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
44
36
  "Friday", "Saturday" };
45
- printf("Year?");
37
+
46
- day.tm_year = getint() - 1900;
38
+ day.tm_year = y - 1900;
47
- printf("Month?");
48
- day.tm_mon = getint() - 1;
39
+ day.tm_mon = m - 1;
49
- printf("Day?");
50
- day.tm_mday = getint();
40
+ day.tm_mday = d;
51
41
  day.tm_hour = day.tm_min = day.tm_sec = 0;
52
42
  time = mktime(&day);
53
43
  localtime_r(&time, &day);