Gibt es einen Unterschied in der Verwendung von %f, %e, %g, %E oder %G mit scanf?

In C, gibt es einen Unterschied in der format-Spezifizierer %f, %e, %g, %E und %G, wenn verwendet, zu Lesen in einer float-Variablen mit scanf? Das heißt, wird das Verhalten der code-snippet

float x;
scanf("%<one of f, e, g, E, G>", &x);

immer abhängig von der Wahl der Planer?

Habe ich zunächst angenommen, dass %f würde nur interpretieren Dezimalschreibweise richtig, und %e würde nur zu interpretieren, wissenschaftliche notation korrekt, aber auf meinem system, jede von Ihnen funktioniert in jedem Fall. Aber vielleicht ist mein system einfach nur liberal...

Konnte ich nicht finden eine definitive Aussage zu diesem in meinen Büchern oder im web...

  • Möchten Sie vielleicht zu Lesen, z.B. dieser Verweis.
  • Vielen Dank - dieser Hinweis ist auf C++, das ist, warum ich nicht vollständig Vertrauen, es vor... Bearbeitet meine Frage ist nun, hinzufügen von "C"
  • Die POSIX-Seite für fscanf() spiegelt die C-standard und fügt einige (gezielt markiert) Erweiterungen. Es sagt, dass umwandlungsspezifikationen a, e, f, g, A, E, F, G behandeln alle floating-point-zahlen in jedem Format. Die Exponenten sind immer erlaubt (aber nicht erforderlich). Dezimalstellen werden akzeptiert, aber nicht erforderlich.
InformationsquelleAutor lee77 | 2013-11-10
Schreibe einen Kommentar