C言語 入門 getsの使い方徹底解説!

motivational quoteC Language
<strong>C言語のgetsを勉強したい人</strong>
C言語のgetsを勉強したい人

C言語のgetsを勉強したいな。文字列の入力が可能な関数って聞いて使ってみたけど、エラーが出て使えないよ!

getsの解説、始めます。

この記事を書いている自分は、一日中プログラミングしていた過去がありました。現在、そこで学んだC言語について解説中です。

今回は、入出力関数とは何か?を解説した後に、getsの使い方を解説していきます。

既に入出力関数は知っているよという人は、飛ばし読みでOK

本記事の内容

・入出力関数とは

・C言語で登場するgets、putsとは?

・getsを使う際に気を付けるべきこと

・getsでエラーが出る際の解決策

C言語では割と基礎の部分なのでしっかり押さえましょう。ついでにputsも解説します。

入出力関数とは?

man in suit jacket standing beside projector screen

入出力関数とは、文字列や数字の入力、もしくは出力のできる関数のことを言います。

下が入出力関数の一覧です。

何文字でもOK一文字のみ何文字でもOK
入力関数(表記)scanfgetchargets
入力関数(読み方)スキャン・エフゲット・チャーゲット・エス
出力関数(表記)printfputcharputs
出力関数(読み方)プリント・エフプット・チャープット・エス

この表にのっている関数は、他の記事で解説しているので参考にしてみて下さい。

今回は「gets関数」「puts関数」の解説をしていきます。

gets関数、puts関数とは?

「gets」は文字列専用の入力関数、「puts」文字列専用の出力関数です。

文字列を扱うため、セットで配列が必要になります。以下が、「gets」、「puts」のフォーマットです。

gets(配列のアドレス);

puts(配列のアドレス);

「gets」で使う配列は、文字列を保存するため(入力のため)のものです。逆に、「puts」で使う配列は、元々文字列が保存されているもの(出力するもの)です。

次に、入出力関数の比較をしていきます。

まず、「getchar」と「gets」の違いは、一文字を扱うか、文字列を扱うかだけです。「putchar」と「puts」の場合も同様です。

また、「printf」と「puts」の違いはありませんが、「scanf」と「gets」の違いは「空白を読み取るか読み取らないか」です。

もしくは「scanf」で他のファイルを読み取りしているときだと、空白を読み取ると同時に、「scanf」での読み取りを終了してしまいます。

「scanf」と「gets_s」ではそれぞれ特徴があるのでうまく使い分ける必要があります。この辺は自分で使用してみて、それぞれの特徴を細かく知る必要があります。

そもそも、ファイル入出力関数を知らないという人は、下の記事を参考にしてください。

»C言語 入門 ファイル読み込み、ファイル出力を徹底解説!

»C言語 入門 ファイル入出力関数を全て解説!(fopen)

gets関数を使う際に注意すべきこと

Visual Studioで「gets」を使う際には注意が必要です。Visual Studioでgets関数をそのまま使うとエラーが出てしまいます。これを避けるための方法を2つ紹介します。

「#define _CRT_SECURE_NO_WARNINGS」を利用する

プログラムの先頭に

#define _CRT_SECURE_NO_WARNINGS

を書けば、エラーが出ずにプログラムを実行できます。

気が付いた方もいるかと思いますが、scanfと同じです。SDLチェックというやつです。何を言っているかよく分からない人は下の記事をご覧ください。

»C言語 入門 「scanf」の使い方!(エラー出た時の対処法も)

「gets」の代わりに「gets_s」を使う

「#define _CRT_SECURE_NO_WARNINGS」が長くて覚えられないという人は、「gets」の代わりに「gets_s」を使いましょう。

getsに似た関数ですが、gets_sを使用すれば、エラーは出ません。

まとめ:getsの使い方徹底解説

assorted books on shelf

補足で、少し重要なキーワードを紹介します。

「scanf」などの関数を使って、キーボードで入力することを「標準入力」と言います。また、今回紹介した6つの関数をまとめて、「標準入出力関数」と呼びます。(単に入出力関数とも言います。)

標準入出力関数は種類が多いので、混乱しやすいポイントです。何度も復習やプログラミングの練習を繰り返して身に付けましょう。

次は、構造体を勉強しましょう。