Array

salut a tous,
je suis un debutant sur C et quant je veux compiler un program array sur visual studio 2012 je recois ce message 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.
et je ne sais pas se qu'il faut faire!
merci a l'avance pour tout aide

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Ajoute
    #define _CRT_SECURE_NO_DEPRECATE
    dans ton code (dans les headers).
    Cela désactivera ces messages d'erreur, car VisualStudio force les gens, même mes débutants, à écrire du code soit-disant plus "safe" (sécurisé) mais pas standard (donc menant les gens sur des "fausses pistes", scanf_s() n'existe pas sur Linux par exemple, scanf() si).
    Il n'y a que le compilateur de Microsoft qui se plaint de ça.

    De toute façon en tant que débutant, il n'est pas nécessaire de s'embêter à écrire du code 100% sécurisé , et encore moins en version Micosoft.
    Le standard C évolue encore et fournira de nouvelles alternatives à scanf() si besoin. Et ce n'est pas le cas.
    1. j'essaye avec mais j'ai toujour la meme erreur. voici le programm que je veux compiler
      #include <stdio.h>
      #define _CRT_SECURE_NO_DEPRECATE

      int main( void )
      {
      float umsatz[7];
      float summe, hoechsterWert, niedrigsterWert;
      int i;
      for( i = 0; i < 7; i++ )
      {

      printf( "Bitte die Umsaetze der letzten Woche eingeben: \n" );

      scanf( "%f", &umsatz[i] );
      }
      summe = 0;
      hoechsterWert = umsatz[0];
      niedrigsterWert = umsatz[0];
      for( i = 0; i < 7; i++ )
      {
      summe += umsatz[ i ];
      if( hoechsterWert < umsatz[i] )
      hoechsterWert = umsatz[i];
      if( niedrigsterWert > umsatz[i] )
      niedrigsterWert = umsatz[i];
      }
      printf( "Gesamter Wochengewinn: %f \n", summe );
      printf( "Hoechster Umsatz: %f \n", hoechsterWert );
      printf( "Niedrigster Umsatz: %f \n", niedrigsterWert );
      return 0;
      }
      1. Contributeur
        Alors ajoute aussi un #define _CRT_SECURE_NO_WARNINGS
    2. on me dit que de regarder la Deklaration de 'scanf'
      je ne sais pas si je doit changer de compilateur
      1. Contributeur
        Changer de compilateur (surtout avec un outil de Micosoft, beuh) serait trop dur pour un débutant.
        Les 2 #defines n'ont ils pas suffit? "on me dit que de regarder la Deklaration de 'scanf'", c'est-à-dire?