Sondaj
Întrebare: Pentru deschiderea unui fişier ce funcţie folosiţi ?
fopen
freopen
ifstream && ofstream

Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: (fopen || freopen) || (ifstream && ofstream)  (Citit de 8434 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Sycron
Client obisnuit
**

Karma: -141
Deconectat Deconectat

Mesaje: 66



Vezi Profilul
« : Martie 13, 2008, 15:14:20 »

Sunt un pic nedumerit... Nu ştiu ce funcţie să folosesc ... am auzit că în ultima versiune de g++ , cea mai rapida citire&scriere se face cu streamuri .... In BC 3.1 însă , cea mai rapidă astfel de funcţie este freopen (după fopen şi streamuri) ...

Ce diferenţe de utilizare sunt între fopen şi freopen ?

Spre exemplu :

fopen
Cod:
FILE * fişier;
fişier=fopen("blabla.bla", "w");
fprintf (fişier, "Test");

freopen
Cod:
freopen ("blabla.bla","w",stdout);
//şi apoi înloc de fscanf şi fprintf se folosesc printf şi scanf ... de ce ?
printf ("Test");
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #1 : Martie 13, 2008, 16:08:19 »

Din cate stiu eu, e doar o diferenta de sintaxa (cea cu freopen fiind mai comoda). Sa ma corecteze cineva daca gresesc.
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
« Răspunde #2 : Martie 13, 2008, 19:01:06 »

Eu folosesc freopen pentru ca e foarte comod, si toti cei pe care ii cunosc folosesc freopen. Doar o singura linie la inceput si dupa aceea citirea se face exact ca si cum ai citi de la tastatura.
Memorat
timotei21
Strain


Karma: 2
Deconectat Deconectat

Mesaje: 5



Vezi Profilul
« Răspunde #3 : Martie 13, 2008, 19:55:06 »

da... numa ca daca ai nevoie de consola in program nu ii bine sa foloses freopen pt ca itzi foloseste numa fisieru...
Memorat
skyel
Nu mai tace
*****

Karma: 29
Deconectat Deconectat

Mesaje: 263



Vezi Profilul
« Răspunde #4 : Martie 13, 2008, 20:13:29 »

da... numa ca daca ai nevoie de consola in program nu ii bine sa foloses freopen pt ca itzi foloseste numa fisieru...
stderr  Tongue
Memorat
byndrsn
Client obisnuit
**

Karma: 19
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #5 : Martie 13, 2008, 21:44:41 »

In general este o idee buna sa printezi debugging stuff in stderr.
Memorat
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #6 : Martie 13, 2008, 22:10:47 »

Citat
Doar o singura linie la inceput si dupa aceea citirea se face exact ca si cum ai citi de la tastatura.

Mulţumesc pentru răspuns. Mi-a fost de ajutor. (ai +1 karma)

Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #7 : Martie 13, 2008, 22:15:02 »

si fisierele deschise cu freopen nu mai trebuiesc inchise... e enervant sa stai sa le inchizi tot timpu si sa iei 0 puncte daca nu le inchizi (vezi fopen)
Memorat
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #8 : Martie 13, 2008, 22:17:13 »

... wow ms . nu ştiu ce mă făceam dacă nu menţionai asta...

În general folosesc citirea/scrierea cu streamuri şi dacă nu închid vreun fişier nu spune nimica.... La fel şi cu freopen...
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #9 : Martie 13, 2008, 22:18:39 »

... wow ms . nu ştiu ce mă făceam dacă nu menţionai asta...

În general folosesc citirea/scrierea cu streamuri şi dacă nu închid vreun fişier nu spune nimica.... La fel şi cu freopen...

Cu freopen nu mai trebuie inchise.
Memorat

vid...
rEbyTer
Vorbaret
****

Karma: -85
Deconectat Deconectat

Mesaje: 154



Vezi Profilul
« Răspunde #10 : Martie 13, 2008, 22:31:37 »

probabil ai citit printre rânduri  Eh? ... am spus că atât la citirea/scrierea cu streamuri cât şi la citirea/scrierea cu freopen nu trebuie să mai inchid fişierul...(cel puţin e opţional)
Memorat
Florian
Nu mai tace
*****

Karma: 125
Deconectat Deconectat

Mesaje: 832



Vezi Profilul
« Răspunde #11 : Martie 14, 2008, 09:03:19 »

Cu freopen nu mai trebuie inchise.

Banuiesc ca nici cu fopen, nu?
Memorat
cos_min
Nu mai tace
*****

Karma: 48
Deconectat Deconectat

Mesaje: 493


live


Vezi Profilul
« Răspunde #12 : Martie 14, 2008, 09:27:32 »

Cu freopen nu mai trebuie inchise.

Banuiesc ca nici cu fopen, nu?

Cu fopen ar fi indicat sa le inchizi.

Cod:
FILE *fin = fopen("tralala.in","r");
.......
fclose(fin)
Memorat

vid...
flo_demon
Strain
*

Karma: 20
Deconectat Deconectat

Mesaje: 46



Vezi Profilul
« Răspunde #13 : Martie 14, 2008, 10:08:08 »

Trebuie inchise fisierele doar fiindca e posibil ca tu sa fi scris ceva si sa nu se salveze in output.
Nu se scrie automat in fisier cand zici fprintf(...), ci se scrie intr-un buffer. Ar fi culmea ca scrierea pe disc sa fie la fel de rapida ca cea in RAM. Si cand inchizi fisierul printre altele se da si un flush la buffer, si se scrie tot ce era de scris in fisier.

Daca vrei sa dai flush automat, foloseste fflush() http://www.thinkage.ca/english/gcos/expl/c/lib/fflush.html

Memorat

Marines don't die! They go to hell and regroup
byndrsn
Client obisnuit
**

Karma: 19
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #14 : Martie 14, 2008, 18:07:58 »

Credeam ca buferul e flushed automat cand programul termina normal (de obicei nu inchid fisierele).
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #15 : Martie 14, 2008, 19:31:07 »

Bufferele de IO sunt golite automat cand se termina programul. Atat freopen cat si fopen au acelasi comportament. Un "good practice" este sa iti inchizi handle-urile de fisiere (inclusiv stdout redirectionat catre fisier)
Memorat
cplusplus
Strain


Karma: 0
Deconectat Deconectat

Mesaje: 1



Vezi Profilul
« Răspunde #16 : Martie 16, 2008, 21:21:04 »

personal folosesc ifstream si ofstream   d'oh!
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines