[c++] Warnung: Formatiere kein String-Literal und keine Format-Argumente



Answers

Technisch gesehen ist es zwar nicht falsch, eine printf-ähnliche Funktion mit einer Zeichenfolge aufzurufen, es ist jedoch immer noch eine schlechte Übung, da die Zeichenfolge Format-Token wie %s . Wenn imp beispielsweise %s test , werden schlimme Dinge passieren.

Wenn Sie den imp ohne Formatierung drucken wollen, sollten Sie fputs(imp, fil) (beachten Sie die umgekehrten Argumente).

Question

Ich möchte die Warnung entfernen, dass ich auf diese Zeile des Codes stoße,

FILE *fil;
char *imp;
(...)
fprintf(fil,imp);

Die Sache ist, wenn ich das mache schreibt es auf die Datei genau was ich will, aber wenn ich das Format% s anwende, tut es das nicht, so

fprintf(fil, "%s", imp);



Links