Čitanie .txt suboru v Cčku

Programovacie jazyky, rady, poradňa...
RandomPleb
Novice
Novice
Príspevky: 2
Registrovaný: 12 apr 2018, 23:37

Čitanie .txt suboru v Cčku

Príspevok od používateľa RandomPleb »

Zdravim,v škole sme dostali zadanie kde mi ma program prečítať textový súbor s menom,váhou a výškou,následne ich vypísať a vypočítať priemer váhy/výšky.
Toto je čo som zatiaľ napísal:
Spoiler

Kód: Vybrať všetko

#include <stdio.h>
#include <string.h>
typedef struct {
	char meno [20];
	float vaha;
	float vyska;
} OSOBA;
int main(){
	FILE *fr;
	int n,i=-1,z;
	OSOBA ludia[6];
	fr=fopen("qwer.txt","r");
	while((z=fgetc(fr)) != EOF){
		++i;
		fgets(ludia[i].meno,20,fr);
		fscanf(fr,"%f",&ludia [i].vaha);
		fscanf(fr,"%f",&ludia [i].vyska);
	} fclose(fr);
	n=i+1;
	printf("\n vypis udajov: ");
	for (i=0;i<n;i++)
	printf("\n%s\t%6.2f\t%6.2f",ludia[i].meno,ludia[i].vaha,ludia[i].vyska);
	getch();
	return 0;
}
Program mi vypiše toto:
output.png
output.png (4.33 KiB) 1009 zobrazení
.txt subor:
Spoiler

Kód: Vybrať všetko

  Jan Handlovsky  85 1.89
Peter Maly       65 1.95
Michal Mokry     75 1.76
Dusan Drobny     95 1.58
Kde je chyba?
CrazyJerry
Light Star
Light Star
Príspevky: 284
Registrovaný: 12 jún 2014, 18:08

Re: Čitanie .txt suboru v Cčku

Príspevok od používateľa CrazyJerry »

Asi by si mohol skor napisiat, co je na tom vobec zle? :D To ze to za vyskou napise to 0.00 ??
RandomPleb
Novice
Novice
Príspevky: 2
Registrovaný: 12 apr 2018, 23:37

Re: Čitanie .txt suboru v Cčku

Príspevok od používateľa RandomPleb »

Tie nuly a to že to nevypisuje začiatočne písmena.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8215
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Čitanie .txt suboru v Cčku

Príspevok od používateľa harrison314 »

Na tie zaciatocne pismena moze pomoct funcia ungetc, ktorou vratis precitany znak z z while cyklu, to ti sposobbuje, ze sa ti nenacita do struktiry prvy znak.
aacid
Hardcore addict
Hardcore addict
Príspevky: 8135
Registrovaný: 22 nov 2006, 21:55
Bydlisko: BA

Re: Čitanie .txt suboru v Cčku

Príspevok od používateľa aacid »

musis pochopit to co robis. najprv vo while pouzijes fgetc, co precita jeden znak a teda posunie kurzor o jedno miesto dalej. potom pouzijes fgets, co precita string, ale len od zaciatku kurzoru. preto tam nevidis prve pismeno.

v tej while podmienke mozes pouzit rovno fgets. ked si precitas dokumentaciu tak zistis ze ona precita string to premennej a rovnako vracia EOF ak uz nic nenajde.
Napísať odpoveď