本稿では、私が柴田望洋著の『新・明解C言語 初級編』と『新・明解C言語 中級編』で独学してる際につまづいた以下に2点についての解決策を記録しています。
- XcodeでC言語のコーディングからプログラムの実行結果の確認をする方法
- printfの\a(ビープ音)や\b(後退)を確認する方法
*Xcodeはmacbookで使用できるアプリケーションです。Xcodeのインストールの説明は飛ばします。
XcodeでC言語のコーディングからプログラムの実行結果の確認をする方法
プロジェクトの作成を行います。
Xcodeの起動画面から「Create a new Xcode project」を選択します。
以下のような画面が出てきます。これはプロジェクトの種類を指定する画面です。
柴田氏の参考書では、コンソールプログラムを作成しているので、「macOS > Command Line Tool」を選択して、右下の「Next」をクリックします。
次にプロジェクトの名前などを指定する画面が出てきます。
Product NameやOrganization Nameなどは適当な名前を入力してください。
LanguageはC言語を扱うので「C」を指定してください。
右下の「Next」をクリックします。
Finderが開くのでプロジェクトを保存する場所を指定します。
プロジェクト画面が出れば、プロジェクトの作成は終わりです。
コーディングをします。
下のコードをコーディングします。
Hello World!を表示するプログラムです。
# include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
return 0;
}
プロジェクト画面の左側にあるナビゲーターエリアに注目してください。
プロジェクトと同名のフォルダにあるソースファイルをクリックします。
エディターエリアにソースファイルが表示されるのでコーディングしていきます。
プログラムの実行結果の確認をします。
左上の「▶︎」のボタンをクリックすると、コンパイルと生成した実行ファイルの実行が行われ、プロジェクト画面の下側にあるデバックエリアにプログラムの実行結果が表示されます。
ただし、この実行結果の確認方法では、\aや\bなど確認の取れないエスケープシーケンスがでてきます。これはコンソールの問題に思われます(たぶん・・・)。
デバックエリアの右側はコンソールの役割を果たしてるらしいのですが、確認の取れないエスケープシーケンスが出てくるあたり、あまり親切では無さそうです。
次項の方法でこれらを実行確認することができます。
printfの\a(ビープ音)や\b(後退)を確認する方法
作成したCファイルをターミナルからgccでコンパイルして実行確認するという方法もあります。
しかし、今回はもっと楽にXcodeによって生成された実行ファイルから実行確認する方法を記述します。
コーディングをします。
以下のコードをコーディングします。
Hello World!を表示して1秒ごとにビープ音を鳴らしながら右から一文字ずつ消していくプログラムです。
# include <stdio.h>
# include <time.h>
void Mysleep(unsigned long x)
{
clock_t c = clock();
while((1000.0 * ((clock() - c) / CLOCKS_PER_SEC)) < x);
}
int main(void)
{
int i;
printf("Hello, World!");
fflush(stdout);
for(i = 0; i < 13; i++)
{
Mysleep(1000);
printf("\a\b \b");
fflush(stdout);
}
return 0;
}
Xcodeでコンパイルされた実行ファイルを確認
左上の「▶︎」のボタンをクリックすると、コンパイルと実行が行われますが、ビープ音を鳴らしながら右から一文字ずつ消していく過程は確認されません。
プロジェクト画面の左側にあるナビゲーターエリアに注目してください。
プロジェクトと同名のフォルダとは別にProductsという名前のフォルダがあるので開いてください。
プロジェクトと同名の実行ファイルが現れるのでクリックしてください。
Finderで実行ファイルを表示する
プロジェクト画面の右側にあるユーティリティエリアに注目してください。
実行ファイルのディレクトリの確認が取れます。右矢印のボタンをクリックすれば、Finderが開きます。
実行ファイルを実行する
Finderに表示されている実行ファイルをダブルクリックすればターミナルが開いて実行確認ができます。