Ulaz i izlaz fajla

Ulaz i izlaz fajla

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Napisano: 03 Nov 2012 18:23

Radim sad poglavlje ulaz i izlaz i ima ovaj program:
#include <stdio.h> #include <stdlib.h> #if defined (MSDOS)     #define MAXPUT 64 #else     #define MAXPUT 128 #endif int main () {     int zn;     char ime[MAXPUT];     FILE *pf;     printf("Unesite ime: ");     gets(ime);     if(ime[0] == '\0'){         fprintf(stderr, "Nije uneto ime!");         exit(EXIT_FAILURE);     }     pf = fopen(ime, "r");     if(pf == NULL){         fprintf(stderr, "Otvaranje %s nije uspelo", ime);         exit(EXIT_FAILURE);     }     while(zn = fgetc(pf) != EOF){         putchar(zn);     }     return EXIT_SUCCESS; }
I sad ja isto tu gde je i fajl ovaj kad compile imam i text file koji se zove Ulaz i izlaz. I sad ja kad ukucam u programu Ulaz i izlaz on nece da mi ispise ono sto pise unutra i psie da otvaranje nije uspelo. Sta se tu treba doda i zasto se ne otvori i ispise sta pise?

Dopuna: 04 Nov 2012 14:36

Hoce li neko da mi odgovori?
BUMP



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Srđan Tot
  • Am I evil? I am man, yes I am.
  • Pridružio: 12 Jul 2005
  • Poruke: 2483
  • Gde živiš: Ljubljana

Sve deluje u redu. Probaj da napraviš datoteku C:\TEST.TXT i nju da otvoriš. Možda se samo ne nalaziš u pravom direktorijumu i onda ti ne rade relativne putanje, možda kucaš pogrešno ime, možda imaš neku čudnu verziju c biblioteke koja ne podržava imena datoteka s ratmacima... Probaj to što sam ti predložio, pa ćemo videti dalje.



offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Dobro, uradio sam i bio je problem jer nisam lepo ukucao ime. I sad on otvori taj fajl i ispise ono sto pise njemu. U fajlu pise: Ja volim programiranje. I on umesto da ispise taj tekst on ispise smajlice onoliko koliko ima ukupno znakova. Znaci "Ja volim programiranje" ima 22 znakova(racuna se i razmak) i on ispise 22 smajlica. Zasto to i sta treba da se uradi da bi ispisao ono sto treba?

offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

Tako ti je zbog "prednosti" operatora. Ova linija:
while(zn = fgetc(pf) != EOF)
treba da bude ovako:
while((zn = fgetc(pf)) != EOF)

http://en.cppreference.com/w/cpp/language/operator_precedence

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Stavio sam one dve zagrade sam dodao i isto. Probaj, pa ce da vidis kako izlazi.

offline
  • Pridružio: 19 Maj 2011
  • Poruke: 297

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Aha, meni je bilo ovako:
while((zn = fgetc(pf) != EOF))
A trebalo je ovako:
while((zn = fgetc(pf)) != EOF)

Sad je u redu i lepo radi.

Hvala ti.. Ziveli Ziveli

Ko je trenutno na forumu
 

Ukupno su 642 korisnika na forumu :: 5 registrovanih, 1 sakriven i 636 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: cikadeda, havoc995, JOntra, slonic_tonic, vathra