getsを置き換える例
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/02 06:53 UTC 版)
「fgets」の記事における「getsを置き換える例」の解説
実際に gets を fgets に置き換える場合は上記の事を考慮しなければならない、ここでは実際に gets を fgets に置き換える例を示す。具体的には gets を使用した以下のようなコードがあるとする、 char a[20];if (gets(a) == NULL) { // エラー処理} この時このコードを fgets に置き換えて、その後の処理に影響を与えないようにする場合は以下のようになる、 char a[20];if (fgets(a, 20, stdin) == NULL) { // エラー処理}// 改行文字が含まれているかの確認if (strchr(a, '\n') != NULL) { // 改行文字を終端記号に置換する a[strlen(a) - 1] = '\0';} else { // 入力ストリームをクリアする while(getchar() != '\n');} 入力ストリームは改行文字を読むまで getchar関数を繰り返して呼び出すことで実現している。ちなみに本格的にセキュリティを考慮する場合には上記のコードにさらにストリームクリア時にエラーが発生した場合などの処理も加える必要があるが本稿の趣旨と外れるのでここでは割愛する。
※この「getsを置き換える例」の解説は、「fgets」の解説の一部です。
「getsを置き換える例」を含む「fgets」の記事については、「fgets」の概要を参照ください。
- getsを置き換える例のページへのリンク