C/C++でセミコロン(;)を使わずにセミコロンを出力する方法
このチュートリアルでは、C/C++においてセミコロン(;)を一切記述せずにセミコロンを出力するプログラムについて解説します。
一見不可能に思えますが、これを実現する方法は主に2つあります。ひとつはセミコロンのASCII値を利用する方法、もうひとつはユーザー定義マクロを利用する方法です。
セミコロンのASCII値は「59」であることを利用すると、文字リテラル ';' を直接書かなくても出力が可能になります。それぞれの方法を見ていきましょう。
方法1:putchar() 関数を使う
putchar() 関数は、指定したASCIIコードに対応する1文字を標準出力に書き出します。引数として 59 を渡すことで、セミコロンを出力できます。
サンプルコード
#include <stdio.h>
int main(){
// セミコロンのASCII値は59
if (putchar(59)){
}
return 0;
}実行結果
;
方法2:マクロを定義して使う
#define を使って printf("%c", 59) をマクロとして定義すれば、ソースコード中にセミコロンを書かずに済みます。マクロ名を記述するだけで、プリプロセッサが展開時に置き換えてくれます。
サンプルコード
#include <stdio.h>
#define POINT printf("%c",59)
int main(){
if (POINT) {
}
}実行結果
;
どちらの方法も、セミコロンのASCII値「59」を間接的に利用している点がポイントです。putchar() はシンプルで直感的、マクロを使う方法はコードの再利用性を高めたい場合に有効です。用途に応じて使い分けてください。
-
C++でセミコロンなしにHello Worldを出力するテクニック
C++のプログラムをセミコロン(;)を使わずに書く方法はいくつかあります。ただし、これはあくまで情報提供のための内容であり、実際のコードでは絶対に使うべきではない悪い作法である点に注意してください。if文を使った最も簡単な方法セミコロンなしでC++プログラムを書く最も簡単な方法は、if文を利用することです。C++ではほとんどすべての文を式として扱うことができます。そのため、文を空の中括弧を持つif文の中に置けば、末尾にセミコロンを付ける必要がなくなります。コード例#include<iostream> int main() { if (std::cout <<
-
C#を使ってバイナリトライアングル(0と1の三角形)を出力する方法
バイナリトライアングル(二進三角形)とは、0と1だけで構成された三角形のパターンのことです。これを作成するには、ネストしたforループ(二重ループ)を活用し、入力された行数に達するまで0と1を交互に出力していきます。ロジックのポイント出力の切り替えには、フラグ変数 a を使用します。a の値が「1」のときは「0」を表示して a を「0」に更新し、逆に a の値が「0」のときは「1」を表示して a を「1」に更新します。この処理を繰り返すことで、0と1が交互に並ぶパターンが生まれます。for (int i = 1; i <= n; i++) { for (int j = 1; j <=