Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

datoteke- citanje , liste

[es] :: C/C++ programiranje :: C/C++ za početnike :: datoteke- citanje , liste

[ Pregleda: 2399 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nick2

Član broj: 31563
Poruke: 169
*.dynamic.sbb.rs.



+8 Profil

icon datoteke- citanje , liste27.05.2011. u 11:10 - pre 156 meseci
pozz, ovako imam jedan problem, postoji datoteka sa parametrima : IME PREZIME i posle toga negraniceno brojeva recimo IME PREZIME 1 2 4 6 4 7 9 , ja to treba da ucitam u listu i da nadjem iz ovih brojeva aritmeticku sredinu (ne moraju svi brojevi u listu, moze odma aritmeticka) ,,, e sad to ne bi bio problem da ovih brojeva imam fiksno,, recimo samo 3 onda bi citao:
while (!feof (ulaz))
{
fscanf (ulaz, "%s %s %d %d %d",ime,prezime, broj1,broj2,broj3);
dodavanje (lst,struktura);

}

ali to nije slucaj,, znaci kako da te brojeve "izbrojim" i najlakse nadjem aritmeticku sredinu...

Guess I'll always be a soldier of fortune...
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.dynamic.sbb.rs.



+1 Profil

icon Re: datoteke- citanje , liste27.05.2011. u 16:22 - pre 156 meseci
Neka petlja koja ucitava jedan po jedan broj?
Code:

int suma = 0, n = 0;
while (!feof (ulaz))
{
  int broj;
  fscanf (ulaz, "%d", &broj);
  suma += broj;
  ++n;
}

float sredina = suma / n;

Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

nick2

Član broj: 31563
Poruke: 169
*.dynamic.sbb.rs.



+8 Profil

icon Re: datoteke- citanje , liste27.05.2011. u 23:57 - pre 156 meseci
hvala na brzom odgovoru ,pomoglo je :)
Guess I'll always be a soldier of fortune...
 
Odgovor na temu

nick2

Član broj: 31563
Poruke: 169
*.dynamic.sbb.rs.



+8 Profil

icon Re: datoteke- citanje , liste28.05.2011. u 13:31 - pre 156 meseci
evo ovako , pojavio se problem, ova petlja ne prikazuje da je ocitala bilo kakve brojeve,mozda zato sto se ispred tih brojeva nalaze 3 stringa (3 reci) ?
mozda bi cak bilo bolje resenje da ucitam sve te brojeve u listu pa da odande nalazim aritmeticku sredinu, medjutim ni to nikako ne uspevam, tacno mi prave problem ti brojevi kojih ima prozivoljno, i nikako se ne ocitavaju svi,,,

da li postoji neka funkcija koja gleda kraj reda, to jest '\n' pa da recimo kazem da mi ocitava brojeve samo iz tog reda,,, (u sledecem redu su mi vec drugo ime i prezime i njegovi brojevi, ako krene da mi cita sve brojeve na svim redovima odjedanput ne znaci mi nista)
Guess I'll always be a soldier of fortune...
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: datoteke- citanje , liste29.05.2011. u 18:06 - pre 156 meseci
Citat:
da li postoji neka funkcija koja gleda kraj reda,

Sa fgets() mozes da citas liniju po liniju fajla.
Sa strtok() mozes da odvajas stringove iz reda koga si upravo procitao.

Otprilike ovako:

Code (c):

/* Standardne C biblioteke, koje obicno trebaju svakom programu */
#include <stdio.h>
#include <stdlib.h>

/* Naziv fajla (ako ga ne ukucavas) i MAX ocekivana duzina linije */
#define NAZIV_DATOTEKE "file.txt"
#define MAX_OCEKIVANA_DUZINA_LINIJE 200

/* Glavna funkcija */
int main(void)
{
    /* Rezervisemo prostor za ceo jedan red, onoliko koliko smo pretpostavili da ce biti maksimalno velik */
    char BufferZaCeoRed[MAX_OCEKIVANA_DUZINA_LINIJE];

    /* Ovo je pokazivac koji ce koristiti funkcija strtok() kada bude izdvajala stringove jednog reda */
    /* Iskreno, prvi put u zivotu sada koristim strtok(), pa me cudi da se ovo ne alocira, al' ajd' na poverenje ... verovatno znaju sta rade */
    char *PokazivacNaElementStringa;

    /* Otvaranje fajla, ovo skapiraj sam... */
    FILE *PokazivacNaFajl;
    PokazivacNaFajl = fopen( NAZIV_DATOTEKE, "r" );
    if ( PokazivacNaFajl == NULL )
    {
        printf( "Datoteka %s se ne moze otvoriti!\n", NAZIV_DATOTEKE );
        return EXIT_FAILURE;
    }


    /* fgets() cita red po red fajla */
    while ( fgets( BufferZaCeoRed, MAX_OCEKIVANA_DUZINA_LINIJE, PokazivacNaFajl ) )
    {
        printf( "\nRED:%s", BufferZaCeoRed );
        printf( "ELEMENTI REDA:\n" );

        /* strtok() izdvaja stringove iz procitanog reda, a kao separator smo definsali BLANKO */
        PokazivacNaElementStringa = strtok ( BufferZaCeoRed, " " );
        while ( PokazivacNaElementStringa != NULL )
        {
            printf ( "%s\n", PokazivacNaElementStringa );

            /*
                OVDE SMISLI NACIN DA U PRVA DVA PROLAZA ODVOJIS IME i PREZIME,
                A U SLEDECIM PROLAZIMA DA POKUPIS VREDNOSTI, KOJE PRETHODNO
                TREBA DA PRETVORIS U float ILI integer JER SU SADA STRINGOVI

                RECIMO, UVEDI BROJAC, PA AKO JE NULA, ONDA JE TO IME, AKO JE JEDAN
                ONDA JE PREZIME, AKO JE VECI OD JEDAN, ONDA SABIRAJ ... ITD
            */


            PokazivacNaElementStringa = strtok ( NULL, " " );
        }
    }
    fclose( PokazivacNaFajl );
    return EXIT_SUCCESS;
}
 


Nadam se da je sada jasnije.



[Ovu poruku je menjao X Files dana 29.05.2011. u 21:04 GMT+1]
 
Odgovor na temu

nick2

Član broj: 31563
Poruke: 169
*.dynamic.sbb.rs.



+8 Profil

icon Re: datoteke- citanje , liste06.07.2011. u 18:37 - pre 154 meseci
izvinjavam se na zakasnjenu, hvala puno , pomoglo je :)
Guess I'll always be a soldier of fortune...
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: datoteke- citanje , liste

[ Pregleda: 2399 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.