warning w funkcji fopen

warning w funkcji fopen
P1
  • Rejestracja:około 14 lat
  • Ostatnio:około 12 lat
  • Postów:91
0

Witam, mój problem polega na tym ze wyskakuje mi warning a nie wiem jak go usunąć.

Kopiuj
warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

Funkcja:

Kopiuj
int plik_istnieje(char* filename)
{
   FILE * fp;
   fp = fopen(filename, "rb");
   if(fp != NULL) {    fclose(fp); return 1; } else { return 0; }
}

Gdy zmieniam "fopen" na "fopen_s" wyskakuje taki bład:

Kopiuj
error C2660: 'fopen_s' : function does not take 2 arguments

Proszę o pomoc.

_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:11 dni
0

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
P1
  • Rejestracja:około 14 lat
  • Ostatnio:około 12 lat
  • Postów:91
0

Ok, dzięki ale gdy zrobiłem to samo dla funkcji sprintf() to wyskoczył taki błąd:

Kopiuj
 error C2664: 'int sprintf_s(char *,size_t,const char *,...)' : cannot convert parameter 2 from 'const char [5]' to 'size_t'

Jak przekonwertować z const char' na 'size_t' ?

Funkcja:

Kopiuj
  /// Buffer must be 32+1 (nul) = 33 chars long at least
  void writeToString()
  {
    int pos ;

    for( pos = 0 ; pos < 16 ; pos++ )
      sprintf_s( digestChars+(pos*2), "%02x", digestRaw[pos] ) ; // <----
  }
massther
  • Rejestracja:ponad 16 lat
  • Ostatnio:około 9 lat
0

Nie ważne, bo to nie ma sensu. Zobacz co oznacza jaki argument wywoływanej funkcji i podaj tam poprawną wartość.
Drugi parametr sprintf_s za MSDN "sizeOfBuffer - Maximum number of characters to store.", sprintf nie posiada takiego parametru.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.