開発環境
- OS: macOS High Sierra - Apple
- IDE(統合開発環境): Xcode - Apple
- プログラミング言語: C
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の3章(小さなツールの作成 - 1つのことだけをうまくやる)、ピザの一切れ(p. 150)を取り組んでみる。
ピザの一切れ(p. 150)
// // main.c // sample1 // // Created by kamimura on 2018/01/27. // Copyright © 2018 kamimura. All rights reserved. // #include <stdio.h> #include <unistd.h> #include <stdbool.h> int main(int argc, const char * argv[]) { char *delivery = ""; bool thick = 0; char ch; for (; (ch = getopt(argc, (char **)argv, "d:t")) != EOF; ) { switch (ch) { case 'd': delivery = optarg; break; case 't': thick = true; break; default: fprintf(stderr, "Unknown option: '%s'\n", optarg); break; } } argc -= optind; argv += optind; if (thick) { puts("Thick crust."); } if (delivery[0]) { printf("To be delivered %s.\n", delivery); } for (int count = 0; count < argc; count++) { puts(argv[count]); } return 0; }
入出力結果(Terminal)
$ ./pizza $ ./pizza p1 p1 $ ./pizza p1 p2 p1 p2 $ ./pizza -t p1 p2 Thick crust. p1 p2 $ ./pizza -td Home p1 p2 Thick crust. To be delivered Home. p1 p2 $ ./pizza -d ./pizza: option requires an argument -- d Unknown option: '(null)' $ ./pizza -d Office -t p1 p2 Thick crust. To be delivered Office. p1 p2 $
0 コメント:
コメントを投稿