Qual è la differenza tra lo specificatore di formato %LG e %LF in C?
Ok, ci sono un paio di pezzi qui che non sono direttamente risposte alla tua domanda, ma sarà utile avere nello stesso posto. La L, indica che il tipo di argomento è un doppio lungo. Il caso è importante, perché l indica un long int. Le funzioni printf e scanf determinano quali tipi tirare fuori dallo stack in base agli specificatori di formato, quindi se sbagliate, vi morderà.
In secondo luogo, entrambi i formati %F e %G sono disponibili in forme maiuscole e minuscole. L'unica differenza tra %f e %F (o %g e %G) è se le lettere che appaiono sono maiuscole o minuscole. Questo sembra strano, perché %F non usa lettere. Suppongo che sia per coerenza tra E, F e G.
Il formato %F stampa (o legge) un valore in virgola mobile in decimale. Potete specificare tutte le solite opzioni di larghezza e precisione del campo, ecc.
Il formato %G, d'altra parte, stamperà in notazione decimale o scientifica, qualsiasi cosa produca una stringa di output più corta. Così, 1.0 verrà stampato come 1.0, ma 1000000.0 verrà stampato come 1E+06, almeno con l'implementazione glibc della libreria standard.