infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: George Cuc din Martie 18, 2008, 13:24:38



Titlul: freopen si EOF
Scris de: George Cuc din Martie 18, 2008, 13:24:38
Cum pot folosi functia freopen sa citesc din fisier pana cand se termina ?

exact ca si cu streamuri!

Cod:
while(citeste)
   {
executa
   }


Titlul: Răspuns: freopen si EOF
Scris de: Gabriel Bitis din Martie 18, 2008, 13:33:22
Cod:
freopen("nume","r",stdin);

while (!feof(stdin))
{
       citeste;
       executa;
       etc..
}


Titlul: Răspuns: freopen si EOF
Scris de: Filip Cristian Buruiana din Martie 18, 2008, 14:38:59
Cod:
freopen("a.txt", "r", stdin);
while (scanf("%d", &x) != EOF)
     printf("%d\n", x);


Titlul: Răspuns: freopen si EOF
Scris de: Pripoae Teodor Anton din Martie 18, 2008, 20:36:49
cu feof nu e bine :P  iti baga ultimu caracter de doua ori... e mai bine atunci cand ai siruri de caractere:

Cod:
while (gets(s)){
    faci ce vrei sa faci;
}

sau

cum a zis filip cristian buruiana cand tre citit numar


Titlul: Răspuns: freopen si EOF
Scris de: Herpesius din Martie 18, 2008, 22:19:30
pentru caractere nu merge asa?
Cod:
freopen("a.txt", "r", stdin);
char x;
while (scanf("%c", &x) != EOF)
     printf("%d\n", x);


Titlul: Răspuns: freopen si EOF
Scris de: Bunau Florin din Martie 18, 2008, 22:46:38
Si asa se poate. eu cel putin folosesc metoda asta.

Cod:
while (scanf(%c", &x) > 0)
    printf("%c", x);

http://www.cplusplus.com/reference/clibrary/cstdio/scanf.html

Citat
Return Value
On success, the function returns the number of items succesfully read. This count can match the expected number of readings or fewer, even zero, if a matching failure happens.
In the case of an input failure before any data could be successfully read, EOF is returned.


Titlul: Răspuns: freopen si EOF
Scris de: Herpesius din Martie 18, 2008, 22:48:33
cand atinge EOF returneaza -1 ?


Titlul: Răspuns: freopen si EOF
Scris de: Tataranu Vlad din Martie 18, 2008, 22:53:50
Da, returneaza constanta EOF care e -1


Titlul: Răspuns: freopen si EOF
Scris de: Andrei Grigorean din Martie 18, 2008, 23:21:53
Eu stiam ca valoarea EOF e machine dependent :).