"C3861: 'gets': 識別子が見つかりませんでした" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C3861: 'gets': 識別子が見つかりませんでした

ソース(バグ有り):

#include <stdio.h>
int main()
{
char buf[256];
printf("入力してください。\n");
gets(%s);
printf("入力結果:%s",buf);
return 0; }


原因:
Microsoft Visual C++ 環境では、gets関数は装備されていません。gets はセキュリティ上問題があります。

対処:
代わりにセキュアな関数であるscanf_sなどを使用します。


ソース(修正済み):

#include <stdio.h>
int main()
{
char buf[256];
printf("入力してください。\n");
scanf_s("%s",buf,256);
printf("入力結果:%s",buf);
return 0; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]