Škôlka jazyka C

Fórum o programovaní v jazyku C založené 3. januára 2012

Aktuálny čas je 26 Nov 2020, 21:43

Všetky časy sú v GMT + 1 hodina


Vyhľadávanie našlo 1 výsledok

Autor Správa

 Skočiť do kategórie   Skočiť do témy

Napísal: 09 Feb 2015, 18:40 

Vždy, keď si nie som istý, nájdem si riešenie cez google:
http://stackoverflow.com/questions/210590/why-does-scanf-need-lf-for-doubles-when-printf-is-okay-with-just-f

Because C will promote floats to doubles for functions that take variable arguments. Pointers aren't promoted to anything, so you should be using %lf, %lg, %le or %la (C99) to read in doubles.
Google preklad:
Vzhľadom k tomu, C bude podporovať pláva zdvojnásobuje funkcií, ktoré sa variabilné argumenty. Ukazovatele nie sú podporované k ničomu, takže by ste mali používať %lf, %lg ,%le alebo %la (C99), čítať vo štvorhre.

Použitie:

#include <stdio.h>

int main(int argc, char** argv) {

double cislo;

printf("Zadajte cislo:");
scanf("%lf", &cislo);
printf("Cela cast cisla: %lf je: %d\n",cislo, (int)cislo);
printf("Zadajte cislo:");
scanf("%lg", &cislo);
printf("Cela cast cisla: %lg je: %d\n",cislo, (int)cislo);
printf("Zadajte cislo:");
scanf("%le", &cislo);
printf("Cela cast cisla: %le je: %d\n",cislo, (int)cislo);
printf("Zadajte cislo:");
scanf("%la", &cislo);
printf("Cela cast cisla: %la je: %d\n",cislo, (int)cislo);

return 0;
}
Stránka 1 z 1 [ Vyhľadávanie našlo 1 výsledok ]


Všetky časy sú v GMT + 1 hodina


Skočiť na:  
cron
Powered by phpBB® Forum Software © phpBB Group

Hosted by FreeSpace SK