web-dev-qa-db-fra.com

Obtenir une erreur "fopen": cette fonction ou variable peut être dangereuse. " lors de la compilation

Je reçois cette erreur lors de la compilation:

'fopen': This function or variable may be unsafe. 
Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.

Je suis nouveau sur C++ et j'ouvre CV, donc aidez-moi à me débarrasser de cette erreur.

Merci

void _setDestination(const char* name)
{
    if (name==NULL) {
        stream = stdout;
    }
    else {
        stream = fopen(name,"w");
        if (stream == NULL) {
            stream = stdout;
        }
    }
}
20
SeverusSwan

Ce n'est pas une erreur, c'est un avertissement de votre compilateur Microsoft.

Sélectionnez votre projet et cliquez sur "Propriétés" dans le menu contextuel.

Dans la boîte de dialogue, choisissez Configuration Properties -> C/C++ -> Preprocessor

Dans le champ PreprocessorDefinitions, ajoutez ;_CRT_SECURE_NO_WARNINGS pour désactiver ces avertissements.

67
nvoigt

Ceci est un avertissement pour d'habitude. Vous pouvez soit le désactiver en

#pragma warning(disable:4996)

ou utilisez simplement fopen_s comme Microsoft l'a prévu.

Mais assurez-vous d'utiliser le pragma avant les autres en-têtes.

9
Blacktempel