c++ %s - Warnung: Formatiere kein String-Literal und keine Format-Argumente



1 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

std ::< string format

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);





Related