開発環境
- 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 コメント:
コメントを投稿