Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 10 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8
Bydlisko: Bánovce nad...
Príspevok NapísalOffline : 02.11.2009 19:39

zdravím pls o pmoc. mám vstupný súbor takýto:
Kód:
1760
Jozef Maly
0
1078.88
11112009

1799
Maria Krasna
1
636.98
12101999


a výstup na obrazovku má vyzerať takto:
Kód:
osobne cislo zamestnanca: 1760
meno priezvisko: Jozef Maly
administrativa/vyrobny pracovnik: 0
plat: 1078.88
datum: 11112002

osobne cislo zamestnanca: 1799
meno priezvisko: Maria Krasna
administrativa/vyrobny pracovnik: 1
plat: 636.98
datum: 12101999


a moja funkcia čo s parametrom smerníka na súbor je takáto:
Kód:
void vypis(FILE *f)
{
   int cis,poz,datum,c;
   double plat;
   char meno[30];
   if((f=fopen("ZAMESTNANCI.TXT","r"))==NULL) printf("Neotvoreny subor\n");
   else
   {
   while((c=getc(f))!=EOF)
   {
      ungetc(c,f);
      fscanf(f,"%d",&cis);printf("osobne cislo zamestnanca: %d\n",cis);
      fgets(meno,30,f);printf("meno priezvisko: ");puts(meno);
      fscanf(f,"%d",&poz);printf("administrativa/vyrobny pracovnik: %d\n",poz);
      fscanf(f,"%lf",&plat);printf("plat: %.2lf\n",plat);
      fscanf(f,"%d",&datum);printf("datum: %d\n",datum);
      putchar('\n');
      if((c=getc(f))==EOF) ungetc(c,f);
   }
   }
   
}


a nevypisuje to ako by malo a ja za ten svet nemôžem prísť na chybu! pomôžte mi pls.







_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Užívateľ
Užívateľ
Nesprávny výpis C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 02.11.2009 21:18

Kód:
void vypis()
{
   FILE *f;
   int cis,poz,datum,c;
   double plat;
   char meno[30];
   if((f=fopen("file.txt","r"))==NULL) printf("Neotvoreny subor\n");
   else
   {
   while((c=getc(f))!=EOF)
   {
      ungetc(c,f);
      fscanf(f,"%d",&cis);printf("osobne cislo zamestnanca: %d\n",cis);
      fgetc(f);
      fgets(meno,30,f);printf("meno priezvisko: ");
      meno[strlen(meno)-1]=0;
      puts(meno);
      fscanf(f,"%d",&poz);printf("administrativa/vyrobny pracovnik: %d\n",poz);
      fgetc(f);
      fscanf(f,"%lf",&plat);printf("plat: %.2lf\n",plat);
      fscanf(f,"%d",&datum);printf("datum: %d\n",datum);
      putchar('\n');
      if((c=getc(f))==EOF) ungetc(c,f);
   }
   }
   
}


ak sa nemylim je to prvy (ak neratam hviezdicky) projekt z prpr na fiit, mam pravdu? bolo to sposobene asi tym, ze scanf nenacita koniec riadka ak nacitava int. cize to treba este nacitat.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8
Bydlisko: Bánovce nad...
Príspevok Napísal autor témyOffline : 02.11.2009 21:40

:D áno všetko sme tu fiitkári:D hej je to z toho prvého projektu. Už som bol fakt bezradný až nakoniec som na to nejako prišiel a potom si odpísal...:)
inak ak tu mám niekoho skúseného ešte by som sa rád spýtal ako zistím pomocou smerníka na pole, že či už bolo dynamicky vytvorené. ale bo teda či ešte nebolo vytvorené.
a ďalšia otázka ak by som mohol že ako zmením: double *pole -> char ch;

inak dik sa pomoc :D







_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Užívateľ
Užívateľ
Nesprávny výpis C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 02.11.2009 21:44

1.: ak ho inicializujes na 0 a potom budes kontrolovat na pritomnost 0, ak tam bude, tak este neni vytvorene.
2.: to druhe sa neda, ak sa pytas na prevod double -> char*, tak sprintf.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8
Bydlisko: Bánovce nad...
Príspevok Napísal autor témyOffline : 02.11.2009 21:54

no vlastne mňa napadlo riešenie že mám FILE *f; double *pole;
som mu na začiatku pridelil že f=NULL; pole=NULL;
potom som aj súbor aj pole posielal ako parameter vo funkcií a súbor som otvoril a pole dynamicky alokoval.
a keď som ho poslal do inej funkcie ako parameter tak tam neviem prečo ale malo znovu hodnutu NULL vôbec sa mi to neprepísalo.

tá konverzia ide o to že mám double *pole;
čiže ukazovatel na pole doublov... a ja jednotlivé tie hodnoty potrebujem premeniť na pole charov...a myslím že ja som to debilne napísal a ty si my správne odpovedal:D.. ok syntax si už vygúglim ďakujem ti idem skúsiť prepísať to NULL za '0' alebo za 0?? má to byť ako znak alebo ako číselná hodnota??







_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Užívateľ
Užívateľ
Nesprávny výpis C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 02.11.2009 22:06

NULL je 0, '0' je znak a jeho hodnota je 0x30


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8
Bydlisko: Bánovce nad...
Príspevok Napísal autor témyOffline : 02.11.2009 22:17

hej ešte úplne posledná otázka len chcem vedieť či tomu správne chápem:
mám funkciu main a ak pošlem ukazovateľ na súbor (f) čomu som nastavil =0; a v inej funkcií ho otvorím cez fopen napr na čitanie tak v tej funkcií platí že f!=0;
ale keď sa vrátim späť do mainu tak tam bude znovu nastavený f na 0?
predpokladám že je to tak lebo tak nejak mi to funguje. keď presuniem otváranie súboru do nejakej inej funkcie takv maine keď skúšam f tak mi píše že je 0.

je to tak správne alebo len ja mám niečo zlé?? ale asi to mám zle lebo keď je to smerník tak tá hodnota by sa mala zmeniť aj keď som v inej funkcií nie?? mám v tom chaos.

to už je fakt posledná otázka už ťa viacej nebudem otravovať. :-)







_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Užívateľ
Užívateľ
Nesprávny výpis C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 02.11.2009 22:24

ano, najjednoduchsie riesenie je vratit hodbotu f funkciou a v maine ju priradit do f.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 12.05.09
Prihlásený: 21.05.10
Príspevky: 33
Témy: 8
Bydlisko: Bánovce nad...
Príspevok Napísal autor témyOffline : 03.11.2009 18:20

ahoj ešte mám pls jednu otázku a nechcel som kôli tomu zakladať novú tému, že ak mám výpis double tak či môžem do formátu výpisu nejako vaužiť premennú??. príklad:
printf("%7.2lf",premena);
tak že či by som tie platné pozície (tá sedmička) mohol nejako nahradiť premennou??
printf("%int.2lf",premenná) a aby mi to vypisovalo na toľko platných miest ako je tá hodnota toho integera..







_________________
SE C905 8GB
Gaming Notebook MSI GX720X-027SK P8400 4GB 320GB VGA
Offline

Užívateľ
Užívateľ
Nesprávny výpis C

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31
Bydlisko: Ružomberok&...
Príspevok NapísalOffline : 03.11.2009 21:09

isteze mohol, v C-cku spravis vsetko. Ale toto asi nebude uplne podporovane.
ale takto to ide, myslim ze aspon podstatu to vystihne, pre sirku vypisu viac ako 10 by to bolo ale trochu upravit.
Kód:
        float f=567.323;
   char i=9;
   char *buffer = (char*)malloc(sizeof(char)*strlen("cislo : %7.2lf\n"));
   strcpy(buffer,"cislo : %7.2lf\n");
   buffer[9]=0x30+i;
   printf(buffer,f);


// 7 je tam len pre vyplnenie miesta


Odpovedať na tému [ Príspevkov: 10 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. Nespravny cas

v Operačné systémy Microsoft

8

996

25.01.2012 20:21

brian4601 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. nesprávný takt pamate.

v Pamäte

5

739

14.12.2010 22:25

marek.smaky Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zvukovka - nespravny ovladac

v Zvuk

21

1573

09.02.2008 18:48

prandof Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Google search nesprávny title

v Internetový marketing, SEO, reklama

0

418

21.08.2014 13:52

majky358 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MicroSD karta -nespravny udaj o kapacite na HP Ipaq 614C

v Ostatné zariadenia

0

1034

20.04.2008 10:56

zyban Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Vypis

v PHP, ASP

13

1000

26.06.2008 10:53

GoodWill Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vypis mailov

v Ostatné

3

482

27.08.2010 15:51

1987123 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. vypis adresara

v PHP, ASP

3

608

16.12.2009 22:25

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. výpis adresárov

v PHP, ASP

11

640

14.05.2008 21:52

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. MySQL vypis

v Databázy

1

313

07.01.2014 15:34

kudzo3 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Výpis php

v PHP, ASP

11

591

14.04.2011 15:58

w3r0 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stromový výpis

v Sieťové a internetové programy

0

424

19.02.2008 15:29

dsljohn Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. výpis zariadení

v Operačné systémy Microsoft

14

579

17.02.2016 21:06

bobino38 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zoradeny vypis

v PHP, ASP

1

330

02.05.2012 7:09

BX Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. rozdvojený výpis?

v PHP, ASP

4

352

21.06.2014 9:16

MasterMatoSK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. percentualny vypis

v PHP, ASP

4

449

23.05.2010 21:53

rooobertek Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra