scnafでエラーになります

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
艦長
記事: 17
登録日時: 12年前

scnafでエラーになります

#1

投稿記事 by 艦長 » 11年前

こんにちは、艦長と申します。
本を読みながら、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

Rittai_3D
記事: 525
登録日時: 12年前

Re: scnafでエラーになります

#2

投稿記事 by Rittai_3D » 11年前

始めまして。3D_3Dと申します。長くて入力が面倒なら3Dとお呼び下さい。

codeタグの使い方が間違っていますよ。フォーラムルールをお読み下さい。
こちらです。
艦長 さんが書きました:

コード:

/*test024*/

#include <stdio.h>

int main()
{
	int seisu;

	printf("整数値を入力して下さい----");
	scanf("%d",&seisu);
	printf("あなたの入力した数値は%dですね\n", seisu);

	return 0;
}

エラーメッセージを和約しますと
「エラー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;
}

とするとエラーが消えるかもしれません。

#どうやら始めましてでは無いようなので修正させていただきます
初心者です

艦長
記事: 17
登録日時: 12年前

Re: scnafでエラーになります

#3

投稿記事 by 艦長 » 11年前

3D_3Dさん、初めまして。
迅速なご回答を頂けまして、ありがとうございます。
フォーラムルールについては分かりました。
教えて頂きました通り、scanfをscanf_sにしてみましたところ、無事コンパイルも出来まして、プログラムも実行出来ました。
本当にありがとうございます。

Rittai_3D
記事: 525
登録日時: 12年前

Re: scnafでエラーになります

#4

投稿記事 by Rittai_3D » 11年前

オフトピック
define文を書きましたか?define文を書けばscanfからscanf_sにする必要は無いと思います。エラーが消えたなら良いのですけど。
初心者です

アバター
asd
記事: 319
登録日時: 14年前

Re: scnafでエラーになります

#5

投稿記事 by asd » 11年前

横から失礼します。
3D_3D さんが書きました:
オフトピック
define文を書きましたか?define文を書けばscanfからscanf_sにする必要は無いと思います。エラーが消えたなら良いのですけど。
個人的なプログラムであれば上記の方法でセキュリティ上の警告は握りつぶしても影響は少ないかと思いますが、
バッファオーバーランなどのセキュリティ上の問題があることを理解した上で使うようにした方がいいと思います。

#よく分かっていないまま、臭いものに蓋をするのはあまり好きではないです。
Advanced Supporting Developer
無理やりこじつけ(ぉ

kokuoutyou
記事: 12
登録日時: 14年前
住所: 大阪府
連絡を取る:

Re: scnafでエラーになります

#6

投稿記事 by kokuoutyou » 11年前

scanf等の4996エラーなら
#pragma warning(disable:4996)
を追加してあげれば消えますよ~

閉鎖

“C言語何でも質問掲示板” へ戻る