ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コメントコンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数指定子 / 修飾子構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子「printf」関数を使って文字を出力・表示させる方法「printf_s」関数を使って文字を出力・表示させる方法「scanf」関数を使って入力させる方法「scanf_s」関数を使って入力させる方法「getchar」関数を使って「1文字」だけ入力させる方法「gets」関数を使って「文字列」を入力させる方法
文字列 / String
文字列 / String「snprintf」関数で「配列」に文字列を書き込む方法
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
オペレーション / Operation
ファイルを操作をする方法コマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリ【assert.h】 - 診断機能【complex.h】 - 複素数計算【ctype.h】 - 文字操作【errno.h】 - エラー【fenv.h】 - 浮動小数点環境【float.h】 - 浮動小数点型の特性【inttypes.h】 - 整数型の書式の変換【iso646.h】 - 代替つづり(Alternate spellings)【limits.h】 - 整数型の大きさ【locale.h】 - 文化圏固有操作【math.h】 - 数学【setjmp.h】 - 非局所分岐【signal.h】 - シグナル操作【stdalign.h】 - アライメント【stdarg.h】 - 可変個数の実引数【stdatomic.h】 - アトミック操作【stdbool.h】 - 論理型および論理値【stddef.h】 - 共通の定義【stdint.h】 - 整数型【stdio.h】 - 入出力【stdlib.h】 - 一般ユーティリティ【stdnoreturn.h】 - _Noreturn【string.h】 - 文字列操作【tgmath.h】 - 型総称数学関数(Type-generic math)【threads.h】 - マルチスレッド【time.h】 - 日付及び時間【uchar.h】 - Unicodeユーティリティ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





【C言語】「gets」関数を使って「文字列」を入力させる方法

【C言語】
「gets」関数を使って「文字列」を入力させる方法




「C言語」の
「gets」関数は、
「キーボード」などの「標準入力」から データを受け取って、
「変数」「配列」などに保存する関数。


「gets_s」関数は、
「マイクロソフト社」が用意した
「マイクロソフト社製コンパイラ」用の「セキュア関数」。



使用方法はシンプルで、
覚えてしまえば簡単に使用できる書式。
文字数の多い文字列は、エラーになることがあります。


詳しくは、
下記をご参照下さい。



「gets」関数とは


「gets」関数は、
「キーボード」などの「標準入力」から、
「文字列」を取得できる関数。


入力した文字列が長すぎるとエラーを起こすことがあり、
「gets」関数の「セキュリティ強化版」でもある セキュア関数「gets_s」関数が用意されている。


「Visual Studio」では、
「gets」関数を利用すると、
「gets_s」関数の使用を促す警告が出る。


Back

標準「C言語」で開発をしたいときの設定方法


「gets_s」関数などの「セキュア関数」は、
「マイクロソフト製コンパイラ」でしか利用できないので、
標準の「C言語」で
開発プログラミングコードを記述したい場合は、
下記の「プリプロセッサ命令」を
ソースコードの先頭に記述する。
記述することで、
警告が表示されなくなる。
#pragma warning(disable: 4996)



「マイクロソフト製コンパイラ」でのみ使用できる
「gets_s」関数などの「セキュア関数」は、
C言語関数名_s
という表記になっていて、
「C言語」の関数名に、「_s」が加えられている名前が、
マイクロソフト製のセキュア関数となっている。


Back

「gets」関数の書式


「gets」関数は、
「キーボード」などの「標準入力」から
データを受け取り、
「変数」「配列」などにデータを保存する関数です。

「gets_s」関数は、
マイクロソフト社が用意した
「gets」関数の「セキュリティ強化版」の「セキュア関数」。
「マイクロソフト社」が用意した「セキュア関数」は、
「マイクロソフト社製コンパイラ」でのみ使用可能です。

標準「C言語」の開発の場合は、
「gets」関数を使用します。



gets(文字を記録するchar型ポインタ);
gets_s(文字を記録するchar型ポインタ, 文字数);

gets(&変数名);
gets(配列名);
gets(&配列名[1]);

gets_s(&変数名, 8);
gets_s(配列名, 8);
gets_s(&配列名[1], 8);


Back