J'ai créé une petite application pour trouver le nombre maximum en utilisant une fonction définie par l'utilisateur avec un paramètre. Lorsque je l'exécute, il affiche ce message
Erreur 1 erreur C4996: "scanf": cette fonction ou variable peut être dangereuse. Envisagez plutôt d'utiliser scanf_s. Pour désactiver la dépréciation, utilisez _CRT_SECURE_NO_WARNINGS. Voir l'aide en ligne pour plus de détails.
Que dois-je faire pour résoudre ce problème?
C'est mon code
#include<stdio.h>
void findtwonumber(void);
void findthreenumber(void);
int main() {
int n;
printf("Fine Maximum of two number\n");
printf("Fine Maximum of three number\n");
printf("Choose one:");
scanf("%d", &n);
if (n == 1)
{
findtwonumber();
}
else if (n == 2)
{
findthreenumber();
}
return 0;
}
void findtwonumber(void)
{
int a, b, max;
printf("Enter a:");
scanf("%d", &a);
printf("Enter b:");
scanf("%d", &b);
if (a>b)
max = a;
else
max = b;
printf("The max is=%d", max);
}
void findthreenumber(void)
{
int a, b, c, max;
printf("Enter a:");
scanf("%d", &a);
printf("Enter b:");
scanf("%d", &b);
printf("Enter c:");
scanf("%d", &c);
if (a>b)
max = a;
else if (b>c)
max = b;
else if (c>a)
max = c;
printf("The max is=%d", max);
}
Il semble que ce soit juste un avertissement du compilateur.
L'utilisation de scanf_s
empêche un éventuel débordement de tampon.
Voir: http://code.wikia.com/wiki/Scanf_s
Bonne explication des raisons pour lesquelles scanf
peut être dangereux: Inconvénients de scanf
Ainsi, comme suggéré, vous pouvez essayer de remplacer scanf
par scanf_s
ou désactivez l'avertissement du compilateur.
Une autre façon de supprimer l'erreur: Ajoutez cette ligne en haut dans le fichier C/C++:
#define _CRT_SECURE_NO_WARNINGS