I have created a small application to find max number by using user-defined function with parameter. When I run it, it shows this message
Error 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.
What do I do to resolve this?
This is my 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); }
It sounds like it's just a compiler warning. Usage of scanf_s prevents possible buffer overflow. So as suggested, you can try replacing scanf with scanf_s or disable the compiler warning.
The problems with scanf are (at a minimum): using %s to get a string from the user, which leads to the possibility that the string may be longer than your buffer, causing overflow. the possibility of a failed scan leaving your file pointer in an indeterminate location.
There is no alternative for the scanf() in C language but there are some functions which can replace some of its functionality. They are gets() and getch(). But please note that the scanf() can read a wide range of values of different data types.
It sounds like it's just a compiler warning.
Usage of scanf_s
prevents possible buffer overflow.
See: http://code.wikia.com/wiki/Scanf_s
Good explanation as to why scanf
can be dangerous: Disadvantages of scanf
So as suggested, you can try replacing scanf
with scanf_s
or disable the compiler warning.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With