みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

c言語でエラーが出ます。

以下のプログラムでコンパイルするとエラーが出ます。どこが間違えていますか?

#include <stdio.h>

int main(void)
{
int vx,vy;

puts("二つの整数を入力して下さい。");
printf("整数vx:"); scanf("%d", &vx);
printf("整数vy:"); scanf("%d", &vy);

printf("vx+vy=%d\n", vx+vy);
printf("vx-vy=%d\n", vx-vy);
printf("vx*vy=%d\n", vx*vy);
printf("vx/vy=%d\n", vx/vy);
printf("vx%%vy=%d\n", vx%vy);

return(0);
}

コンパイラーはmicrosoft visual studio 2012です。エラー表示は「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.」と出ます。

8行目のscanfの文にエラーと出ますがどこが間違っているか分かりません。どなたか分かる方教えて頂けますか?

投稿日時 - 2013-04-24 01:22:43

QNo.8056918

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

辞書片手にエラーメッセージの言わんとすることを理解すべし。

投稿日時 - 2013-04-24 17:02:37

ANo.2

英語は分からないなどと言わずに、エラーメッセージをちゃんと読みましょう。

This function or variable may be unsafe.
この関数または変数は安全じゃないかも。

Consider using scanf_s instead.
代わりに scanf_s をつかってみたら。

To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
この警告を禁止するなら、 _CRT_SECURE_NO_WARNINGS を使いなさい。

See online help for details.
詳しくはオンラインヘルプを見てね。


scanf について、WIKIを見てください。
特に「バッファオーバーラン」の項目を見てね。
http://ja.wikipedia.org/wiki/Scanf

投稿日時 - 2013-04-24 09:13:39

ANo.1

>8行目のscanfの文にエラーと出ますがどこが間違っているか分かりません。どなたか分かる方教えて頂けますか?

エラーメッセージに理由と対処内容は書いてありますけど。
英文だからといって読むのをあきらめてませんか?

http://msdn.microsoft.com/ja-jp/library/ttcz0bys(v=vs.110).aspx

本来は警告なのがエラーになってるのはコンパイラの設定をそうしてるからでしょうけど。

投稿日時 - 2013-04-24 01:44:37

お礼

設定でSDLチェック外すとできました。セキュリティ機能が働いていたんでしょうか?ありがとうございます。

投稿日時 - 2013-04-24 02:22:39

あなたにオススメの質問