2016-11-05 1 views
1
fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t"); 

diese Linie arbeitet in dev in Ordnung, aber nicht in ubuntu, wie es folgende Fehler zu erzeugenZu viele Argumente für Format [-Wformat-extra-args]

warning: too many arguments for format [-Wformat-extra-args] 
fprintf(fptr2,"\n\n:%s",ctime(&t),"\t ","\t");  
       ^

was soll ich tun?

+3

Änderung: 'fprintf (fptr2, "\ n \ n% s \ t \ t".., Ctime (&t));' – kaylum

+2

"Adaequat" Berühmte letzte Worte – EOF

+1

Sie haben 3 Argumente nach dem Format-String, aber nur ein '% s' in der Formatzeichenfolge.Was erwarten Sie, dass es mit den zusätzlichen Argumenten zu tun? – Barmar

Antwort

0

fprintf nimmt eine variable Anzahl von Argumenten:

  • a FILE* Ausgabestrom
  • ein Format-String
  • eine zusätzlichen Argumente für jedes % Format, durch eine optionale Breite, vor und/oder Präzision, wenn dies sind als * angegeben.

Sie sollten nur ein zusätzliches Argument haben, eine Zeichenfolge für das %s Format.

Die zusätzlichen Argumente "\t" und "\t" werden einfach ignoriert, aber der Compiler gibt Ihnen eine Diagnose, da ihre Anwesenheit wahrscheinlich auf einen Programmierfehler hinweist.

Solche Warnungen sind ein Segen, da sie viele dumme Fehler verhindern, von Tippfehlern bis zu Unstimmigkeiten bei Argumenttypen. Ihre dev-Umgebung ist so konfiguriert, dass Sie zu Ihrem Nachteil ruhig bleiben. Schauen Sie in Sie, um es zu beheben: Fügen Sie Compiler-Optionen wie -Wall -W oder -Weverything hinzu.