【独学C言語】入力と出力

※この記事は「2020年12月2日」に更新しました。

独学で、C言語の基礎を学習する記事を公開していきます。

前回は、変数について、解説しました。

【独学C言語】変数とは

【独学C言語】変数とは

2020年4月12日

今回は、入力と出力について。

コンソールへの情報の書き込み、読み取りを行うための関数などを学習していきます。

入力と出力【C言語】

C言語の入力と出力について、紹介していきます。

printf関数

printf関数は、コンソールにメッセージを出力するための標準関数です。

int printf(char *制御文字列, ...);

最後の … は、可変長の引数リストを表します。

制御文字列には、出力する文字とフォーマット指定子の2種類の項目を含めることができます。

フォーマット指定子には以下のようなものがあります。

指定子 出力書式
%c 文字
%s 文字列
%u 符号なし整数(10進数)
%d 符号付整数(10進数)
%i 符号付整数(10進数)
%o 符号なし整数(8進数)
%x 符号なし整数(16進数)
%f 符号付浮動小数点(10進数)
%p ポインタ

scanf関数

scanf関数は、キーボードから入力されるデータを読み取ることができます。

int scanf(char *制御文字列, ...);

制御文字列は、主にフォーマット指定子で構成されます。

フォーマット指定子には以下のようなものがあります。

指定子 出力書式
%c 文字
%s 文字列
%u 符号なし整数(10進数)
%d 符号付整数(10進数)
%i 符号付整数(10進数)
%o 符号なし整数(8進数)
%x 符号なし整数(16進数)
%f 符号付浮動小数点(10進数)
%p ポインタ
%[] 文字の集合をスキャンする

printf関数で紹介したものとほとんどいっしょです。

scanf関数は、多機能なので奥が深いのですが、簡単なものを紹介します。

整数値を読み取る方法

scanf関数で整数値を読み取る方法です。

scanf("%d", &int型の変数名);

注意点としては、&(アンパサンド)を必ず付けるようにすることです。

これがないと正常に動作しません。

この表記に関しては、ポインタを学習すると理解できます。

【独学C言語】ポインタとは

【独学C言語】ポインタとは

2020年5月1日

とりあえずは、こういうふうに書くと覚えておきましょう。

getchar関数、putchar関数

getchar関数は、キーボードからの入力文字を1文字読み取ります。

int getchar(void);

putchar関数は、コンソールに1文字出力します。

int putchar(int ch);

gets関数、puts関数

gets関数は、改行を読み取るまでキーボードからの入力文字を読み取ります。

char *gets(char *str);

puts関数は、文字列をコンソールに出力します(改行を自動的に追加する)。

int puts(char *str);

標準入出力のヘッダファイルについて

今まで学習してきて、先頭に下記のコードを書いてきたかと思います。

#include <stdio.h>

これは、プリプロセッサディレクティブと呼ばれるもので、プリプロセッサに対する命令のことです。

#include というのは、ヘッダファイルをインクルードするときに使う、プリプロセッサディレクティブです。

stdio.h というのは、標準入出力をするためのヘッダファイルです。

つまり、今回学習した printf関数などを使うために必要なヘッダファイルです。

プリプロセッサとは
プリプロセッサはソースファイルをコンパイルする前に行われる処理のことです。

サンプルプログラム【C言語】

入力と出力を理解するためのサンプルプログラム(C言語)です。

sample1.c というソースファイルをテキストエディタで作成します。

#include <stdio.h>

int main(void)
{
    int number;

    printf("\n");
    printf("Please input number: ");
    scanf("%d", &number);

    printf("\n");
    printf("input number: %d", number);
    printf("\n");

    return 0;
}

このサンプルは、int型の数字を入力して入力した数字を表示するプログラムです。

練習なので、バリデーションは考えていません。

実行結果は以下の通りです(5を入力しています)。

入力と出力
バリデーションとは
バリデーションとは、入力された値が正しい形式で入力されているか検証することです。今回のサンプルだと数値以外も入力しようと思えば入力できてしまいます。

独学C言語の記事について【おまけ】

タカフミブログの独学C言語シリーズは、C言語を独学するということを目的に記事を書いています。

他の記事に興味がある方は以下をご参照下さい。

C言語に関する記事一覧

C言語は、古典的なイメージがある方もいるかもしれませんが、他の多くのプログラミング言語のベースになっています。

実際に本格的なソフトを開発するとなるとなかなか大変ですが、とにかくハードウェアのリソースが少なくても高速に動くのが最大のメリットです。

プログラマーや SE(システムエンジニア)を目指す方は一度お試し下さい。

最後に【入力と出力】

いかがでしょうか。

次回は、if文(else、else if など)の条件分岐について、解説します。

【独学C言語】if文(elseなど、条件分岐)

【独学C言語】if文(elseなど、条件分岐)

2020年4月15日

入力と出力の関数について、色々紹介してきました。

printf関数とscanf関数は、汎用性が高いので、まずはこれだけでも覚えましょう。