[ vujkeBG @ 23.10.2012. 15:21 ] @
Treba da unesem niz od 5 (celih) brojeva u datoteku (niz.txt), a zatim da sa tastature učitam i prikažem n-ti broj niza...

Code:

#include <iostream>
#include <fstream>

int main() {

using namespace std;

    int niz[5];
    int i, j, s=0;

    fstream datoteka;
    datoteka.open("niz.txt");

    cout<<"Unesite 5 brojeva.\n";

    for(i=0; i<5; i++)
    {
        cin>>niz[i];
        datoteka<<niz[i]<<"\n";
        s+=niz[i];
    }

// citanje niza

    cout<<"Koji niz zelite: ";
    cin>>s;

    for( i=0; i<s; i++ )
    {
        for( j=0; j<3; j++ )
        {
            datoteka>>niz[j];

        }

    }

    for(i=0; i<3; i++)
    {
        cout<<niz[i];
    }

    datoteka.close();
    return 0;

}


Prvi deo koda (upisivanje nizova) bi trebalo da je tačno, al čitanje niza nije...


Kako pravilno uraditi?

[Ovu poruku je menjao vujkeBG dana 23.10.2012. u 17:29 GMT+1]
[ Mihajlo Cvetanović @ 23.10.2012. 15:51 ] @
1. Praksa je da #include direktive stoje izvan funkcija. U tvom slučaju dve #include linije treba da idu prve, a tek posle njih int main() {.

2. Malo sam zbunjen terminima u tekstu, iako se slažu sa onim što piše u kodu. Reči "čitanje" i "pisanje" se obično odnose na fajl, a ne na niz. Fajl je "jači" od niza. Iz fajla se čita i u fajl se upisuje.

3. Kažeš da nešto ne valja, ali mi ne možemo da znamo šta, dok nam ne kažeš kako bi trebalo da izgleda kad valja. Reci nam šta se trenutno dešava, a i šta bi ti želeo da se desi.
[ vujkeBG @ 23.10.2012. 16:51 ] @
Greska za direktive... Ispravljeno.

Hocu da me program pita da unesem 5 brojeva i da te brojeve upise u datoteku "niz.txt". Npr. uneo sam sledece brojeve:
23
16
55
67
39

Zatim, da pita koji od unetih brojeva (iz datoteke "niz.txt") zelim da prikazem na ekranu. Npr. ako sam izabrao 3. broj, onda na ekranu ispise broj 55. Deo koda za citanje iz datoteke nece da radi...
Code:
// citanje niza

    cout<<"Koji niz zelite: ";
    cin>>s;

    for( i=0; i<s; i++ )
    {
        for( j=0; j<3; j++ )
        {
            datoteka>>niz[j];

        }

    }

    for(i=0; i<3; i++)
    {
        cout<<niz[i];
    }

Da li sam na dobrom putu ili nista ne valja?

Ako sam bio dovoljno jasan...



[ Mihajlo Cvetanović @ 23.10.2012. 17:04 ] @
Onda ti ne treba ova unutrašnja petlja što uvek obrne tri kruga. Treba da čitaš s brojeva iz datoteke, i poslednji broj koji si učitao je onaj koji je tražen. Čak ne treba ni da učitavaš tih s brojeva u niz, dovoljna ti je samo jedna promenljiva u koju će se unositi svih s brojeva. Odmah zatim opet imaš neku petlju koja obrće tri kruga. Ni ona ti ne treba, jer po zadatku traži se samo jedan element niza. Ispiši samo taj jedan element koji si učitao.

Takođe umesto teksta "Koji niz zelite" ja bih stavio nešto u stilu "Pod kojim je rednim brojem element niza koji želite".