Anonymní profil Filip – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Filip – Programujte.comAnonymní profil Filip – Programujte.com

 

Příspěvky odeslané z IP adresy 188.112.66.–

Filip
C / C++ › Čítanie zo súboru
9. 2. 2013   #171313

mám úlohu Precitajte vsetky realne cisla zo suboru cisla.txt a vypocitajte ich aritmeticky priemer. Vo funkcii
fscanf() vyskusajte formaty citania "$%f", "$%f \n", "$%f", "$%f \n". Konec suboru
netestujte pomocou EOF, ale pomocou navratovej hodnotu funkcie fscanf().

V súbore je 20 cisiel float, každé v jednom riadku
$0.0000
$3.1400
....

fscanf("$%f"); ani skúšat nemusím, lebo mi zostane stále na prvom riadku.
 

if((cisla = fopen("cisla.txt", "r")) == NULL){
		printf("Nepodarilo sa otvorit subor cisla.txt \n");
		return;
	}

	while(fscanf(cisla, "$%f\n", &cislo) != 20){
		printf("%f \n", &cislo);
		pocet++;
		suma += cislo;
	}

	printf("\nAritmeticky priemer je %f \n", suma / pocet);

	if(fclose(cisla) == EOF){
		printf("Nepodarilo sa zatvorit subor cisla.txt \n");
		return;
	}

Problém je v tom, že aj keď mi program už prečíta 20 čísiel, tak pokračuje ďalej. 
A ešte funkcia printf() mi vypiše prvé číslo 0,0000 ale potom mi nevypíše už ďaľšie načítané, ale stále len 0,0000.
Pritom som si program pozrel a v premennej cislo mam vždy naačítané iné (také, ako má byť), ale printf mi vypíše stále len to prvé

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý