Zdravím začinám s céčkem a potřeboval bych trochu pomoc vysvetlenim scanf. Čekal bych, že následující program přečte 2 čísla, protože fscanf ignoruje mezery a oddělovače řádků. Nicméně program přečte pouze jedno číslo a druhé ne. Problém lze vzřešit doplněním mezery, nebo new line do fcanf. Chtěl bych pochopit proč to tak funguje. Děkuji moc a šetřete mně.
#include <stdio.h>
int main()
{
int a;
double cislo;
FILE *fr;
if((fr = fopen("Cisla.TXT", "r")) == NULL){
printf("CISLA nejde otevrit");
return 1;
}
a=fscanf(fr, "$%lf", &cislo);
printf("%d\n", a);
printf("%lf\n", cislo );
a=fscanf(fr, "$%lf", &cislo);
printf("%d\n", a);
if(fclose(fr) == EOF){
printf("CISLA nejde zavrit");
return 1;
}
else
return 0;
}
Cisla.txt
$3.14
$6.28
$9.42