infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Robert Badea din Ianuarie 12, 2011, 21:03:49



Titlul: Sfârșitul unui fișier
Scris de: Robert Badea din Ianuarie 12, 2011, 21:03:49
Dragi prieteni  :D

De ieri seară mă chinui să îmi dau seama cum aflu când se termină un fișier și nu prea am avut succes.
De specificat:
- deschid fișierul de intrare cu freopen
- folosesc scanf pentru citire, am câte doi întregi pe linie, separați de un spațiu
     exp: 23 3
- introduc întregii într-o strucutră care conține 2 vectori, pe exemplu de mai sus ar fi t.a=23 și t.b=3
- trebui să le citesc pe toate și nu știu condiția de terminare a fișierului.

Vreo recomandare? sau poate altă funcțite asemănătoare cu scanf în care să pot specifica fișierul de unde se citește.


Titlul: Răspuns: Sfârșitul unui fișier
Scris de: Mihai Calancea din Ianuarie 12, 2011, 21:17:25
Scanf ia valoarea -1 daca nu mai are ce citi, din cate tin minte.
Poti incerca ceva in genul for ( ; scanf( ceva ) != -1 ; ) { etc; }


Titlul: Răspuns: Sfârșitul unui fișier
Scris de: Robert Badea din Ianuarie 12, 2011, 21:28:00
Să trăiești cât vrei tu! Mersi mult, eu tot puneam condiția de scanf să fie 0.

 :D


Titlul: Răspuns: Sfârșitul unui fișier
Scris de: Pripoae Teodor Anton din Ianuarie 12, 2011, 23:45:44
Scanf returneaza numarul de argumente citite. Daca tu citesti 2 numere ar trebui sa iti returneze 2. Daca nu returneaza 2 a intervenit o eroare.


Titlul: Răspuns: Sfârșitul unui fișier
Scris de: CHERA Laurentiu din Ianuarie 16, 2011, 00:19:42
Cod:
while(!feof(in))
{
   // instructiuni
}
Cu in am notat fisierul FILE *in = fopen("fisier.fmt", "mod");

LE: scuze nu am fost atent; pt freopen folosesti stdin in loc de in; Succes!