Page 1 - 2 文字出力(補足)

その他の文字出力方法

画面に文字を出力する方法は色々あります。printfが一番汎用的に使えるのではじめに紹介しましたが、その他の方法も知っておくと色々便利です。

以下、すべて、標準入出力ヘッダファイル(stdio.h)をインクルードする必要があります。

putchar

1文字を出力する関数です。

int putchar(int c);

↑は関数の定義です。putcharはint型の引数をとり、int型の値を返す、ということを意味しています。

「c」のところに表示したい文字を入れます。「putchar('a')」など。

下はAが1文字表示され、改行されるプログラムです。1)Aの表示、2)改行、と2回putcharを使用しています。

#include <stdio.h>

int main(){
	putchar('A');
	putchar('\n');
	return 0;
}

注意:C言語では「1文字」と「文字列」とは明確に区別されます。「1文字」の場合はシングルクオーテーション「'」を使うことに注意してください。ダブルクオーテーション「"」ではエラーになります。

/* エラーになるプログラム */
#include <stdio.h>

int main(){
	/* ダブルクオーテーションを使用しているのでエラー */
	putchar("A");
	putchar("\n");
	return 0;
}

puts

文字列を出力する関数です。printfのようにフォーマット指定してint型変数を混ぜて出力することはできません。

また、文字列出力後、必ず改行します。

int puts(const char *s);

「*s」のところに文字列を入れます。「puts("ABCDEFG")」など。なお、「*」はポインタを意味しますが、詳細はポインタのページで。

#include <stdio.h>

int main(){
	puts("This is a pen.");
	return 0;
}

今度は文字列なのでダブルクオーテーションです。シングルクオーテーションではエラーになります。

fprintf

fprintfは本来ファイルに出力するための関数です。

int fprintf(FILE *stream, const char *format, ...);

(この関数については後の章で詳しく扱います。)

ただ、エラー出力する場合に、*streamにstderrなどを指定して出力するという方法がよくとられます。以下の例ではまだ触れていない内容が入っていますが、気にしないでください。

#include <stdio.h>

int main(){
	FILE* fp;
	if((fp = fopen("AIUEO.txt", "r")) == NULL){
		/* エラーになったとき */
		fprintf(stderr, "File Open Error\n");
		return 1;
	}
	fclose(fp);
	return 0;
}

一応上のプログラムを解説しますと、AIUEO.txtファイルを読み込み用で開いて閉じるプログラムで、開く処理に失敗した場合は(要はファイルが存在しなかった場合)、エラー出力するという処理が組み込まれています。エラー出力にはfprintf()を使用しています。

/* */で囲んだ場所はコメントといい、プログラムの実行には影響しません。その付近で何をしているのかというのをわかりやすくしたり、後で思い出せるようにしたりするために記述します。

なお、エラーになった場合「return 1」としていますが、一般に、メイン関数の返り値は「正常終了 = 0、異常終了 = 1」とすることが多いです(それがすべてとは限りません)。

戻る