こんにちは、艦長と申します。
本を読みながら、C言語の勉強をしていますが、下記の内容のコードを書いてコンパイルしたところ、エラーが発生します。
エラー文を読んでみましたが、どうもscanfの所が間違っているようなのですが、本に書いてあるコードと見比べてみても、
間違っていないようなので、何でエラーになるのか分かりません。
理由と対処方法を教えていただけませんでしょうか。
使用している環境は、Windows8でMicorsoft Visual Studio Express2012 for Windows Desktopです
code
/*test024*/
#include <stdio.h>
int main()
{
int seisu;
printf("整数値を入力して下さい----");
scanf("%d",&seisu);
printf("あなたの入力した数値は%dですね\n", seisu);
return 0;
}
/code
エラー 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\**\documents\visual studio 2012\projects\test024\test024\test024.c 10 1 test024
scnafでエラーになります
Re: scnafでエラーになります
始めまして。3D_3Dと申します。長くて入力が面倒なら3Dとお呼び下さい。
codeタグの使い方が間違っていますよ。フォーラムルールをお読み下さい。
こちらです。
「エラー1エラーC4996 : ' scanf関数' :この関数または変数は安全でない可能性があります。代わりscanf_sでは使用を検討してください。非推奨を無効にするには、 _CRT_SECURE_NO_WARNINGSを使用しています。詳細については、オンラインヘルプを参照してください。」
となっています。(Google翻訳を使用しました)
自分はwindows 8もMicorsoft Visual Studio Express2012 for Windows Desktopも持っていないので試していませんが
とするとエラーが消えるかもしれません。
#どうやら始めましてでは無いようなので修正させていただきます
codeタグの使い方が間違っていますよ。フォーラムルールをお読み下さい。
こちらです。
エラーメッセージを和約しますと
「エラー1エラーC4996 : ' scanf関数' :この関数または変数は安全でない可能性があります。代わりscanf_sでは使用を検討してください。非推奨を無効にするには、 _CRT_SECURE_NO_WARNINGSを使用しています。詳細については、オンラインヘルプを参照してください。」
となっています。(Google翻訳を使用しました)
自分はwindows 8もMicorsoft Visual Studio Express2012 for Windows Desktopも持っていないので試していませんが
/*test024*/
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int seisu;
printf("整数値を入力して下さい----");
scanf("%d",&seisu);
printf("あなたの入力した数値は%dですね\n", seisu);
return 0;
}
#どうやら始めましてでは無いようなので修正させていただきます
初心者です
Re: scnafでエラーになります
3D_3Dさん、初めまして。
迅速なご回答を頂けまして、ありがとうございます。
フォーラムルールについては分かりました。
教えて頂きました通り、scanfをscanf_sにしてみましたところ、無事コンパイルも出来まして、プログラムも実行出来ました。
本当にありがとうございます。
迅速なご回答を頂けまして、ありがとうございます。
フォーラムルールについては分かりました。
教えて頂きました通り、scanfをscanf_sにしてみましたところ、無事コンパイルも出来まして、プログラムも実行出来ました。
本当にありがとうございます。
Re: scnafでエラーになります
オフトピック
define文を書きましたか?define文を書けばscanfからscanf_sにする必要は無いと思います。エラーが消えたなら良いのですけど。
初心者です
Re: scnafでエラーになります
横から失礼します。
バッファオーバーランなどのセキュリティ上の問題があることを理解した上で使うようにした方がいいと思います。
#よく分かっていないまま、臭いものに蓋をするのはあまり好きではないです。
個人的なプログラムであれば上記の方法でセキュリティ上の警告は握りつぶしても影響は少ないかと思いますが、3D_3D さんが書きました:オフトピックdefine文を書きましたか?define文を書けばscanfからscanf_sにする必要は無いと思います。エラーが消えたなら良いのですけど。
バッファオーバーランなどのセキュリティ上の問題があることを理解した上で使うようにした方がいいと思います。
#よく分かっていないまま、臭いものに蓋をするのはあまり好きではないです。
Advanced Supporting Developer
無理やりこじつけ(ぉ
無理やりこじつけ(ぉ
-
- 記事: 12
- 登録日時: 14年前
- 住所: 大阪府
- 連絡を取る:
Re: scnafでエラーになります
scanf等の4996エラーなら
#pragma warning(disable:4996)
を追加してあげれば消えますよ~
#pragma warning(disable:4996)
を追加してあげれば消えますよ~