開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio 2017 (Clang/C2(試験的))
- プログラミング言語: C(Visual C)
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の6章(データ構造と動的メモリ - 架け橋を築く)、プールパズル(p. 287)を取り組んでみる。
プールパズル(p. 287)
コード
#include <stdlib.h> // system
#include <stdio.h>
#include <string.h> // strdup
typedef struct Island
{
char *name;
char *opens;
char *closes;
struct Island *next;
} Island;
Island* create(char *name)
{
Island *i = (Island*)malloc(sizeof(Island));
i->name = _strdup(name);
i->opens = "09:00";
i->closes = "17:00";
i->next = NULL;
return i;
}
void display(Island *start)
{
for (Island *i = start; i != NULL; i = i->next )
{
printf("名前: %s 営業時間: %s-%s\n", i->name, i->opens, i->closes);
}
}
int main()
{
Island *start = NULL;
Island *i = NULL;
Island *next = NULL;
char name[80];
const char *filename = "sample.txt";
FILE *in_fh = fopen(filename, "r");
if (!in_fh)
{
printf("ファイル%sを開けませんでした。", filename);
exit(1);
}
for (Island* i = NULL; fgets(name, 80, in_fh) != NULL; i = next)
{
next = create(name);
if (start == NULL)
start = next;
if (i != NULL)
i->next = next;
}
display(start);
system("pause");
return 0;
}
入出力結果(コマンドプロンプト)
>Project2.exe ファイルsample.txtを開けませんでした。 >type sample.txt デルフィーノ島 エンジェル島 ヤマネコ島 ネリの島 グレートトッディ >Project2.exe 名前: デルフィーノ島 営業時間: 09:00-17:00 名前: エンジェル島 営業時間: 09:00-17:00 名前: ヤマネコ島 営業時間: 09:00-17:00 名前: ネリの島 営業時間: 09:00-17:00 名前: グレートトッディ 営業時間: 09:00-17:00 続行するには何かキーを押してください . . . >
0 コメント:
コメントを投稿