[ Bratstvo Jedinstvo @ 04.01.2005. 18:54 ] @
Moze li mi iko pomoci oko rada sa datotekama!?
Naime zanima me kako da citam i snimam u datoteke!?

U napred hvala
[ LOW @ 04.01.2005. 22:58 ] @
Ovako prvo si trebo naglsiti o kom OS-u je rec!!predpostavljam da je to Win!!

Za to postoje ako se nevaram funkcije fwrite i fread

fread primer:

#include <string.h>
#include <stdio.h>

int main(void)
{
FILE *stream;
char msg[] = "this is a test";
char buf[20];

if ((stream = fopen("DUMMY.FIL", "w+"))
== NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}

/* write some data to the file */
fwrite(msg, strlen(msg)+1, 1, stream);

/* seek to the beginning of the file */
fseek(stream, SEEK_SET, 0);

/* read the data and display it */

fread(buf, strlen(msg)+1, 1, stream);
printf("%s\n", buf);

fclose(stream);
return 0;
}

Borland C++ 5.0 Programmer's Guide

fwrete primer:

#include <stdio.h>

struct mystruct
{
int i;
char ch;
};

int main(void)
{
FILE *stream;
struct mystruct s;

if ((stream = fopen("TEST.$$$", "wb")) == NULL) /* open file TEST.$$$ */
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
s.i = 0;
s.ch = 'A';
fwrite(&s, sizeof(s), 1, stream); /* write struct s to file */
fclose(stream); /* close file */
return 0;
}

Borland C++ 5.0 Programmer's Guide

PS izvinite na ovako neurednoj poruci zurim poz:)
neka me neko ispravi ako gresim u ovome (ja sam jos pocetnik:))
[ Ivand @ 05.01.2005. 02:06 ] @
e sada nekoliko nacina rada sa fileovima
evo jednog primera u radu sa textualnim fileovima
Code:

#include<stdlib.h>
#include<stdio.h>
#include"fun.h"

elem *citaj(elem *lst,char *file){
    int p;
    FILE *f1;
    f1= fopen(file,"r");
    while(!feof(f1)){
            fscanf(f1,"%d",&p);
            lst = nakraj(lst,p);        
    }
    fclose(f1);
    return lst;
}


void pisi(elem *lst){
    FILE *f2;
    f2= fopen("file2.txt","w");
    while(lst) {
        fprintf(f2,"%d ",lst->broj);
        lst = lst ->sled;
    }
    fclose(f2);
}



nadam se da te nece zbuniti korscenje listi u primeru ove dve f-cije

[ Bratstvo Jedinstvo @ 05.01.2005. 09:20 ] @
Hvala ljudi, to mi je trebalo. Ipak cu se posluziti Ivand-ovim resenjem, krace je i razumnije. Samo nisam shvatio koje ti je klasa fun.h. Rekao bih da je nesto sto si ti razvijao!?
U medjuvremenu sma iskopao jos jedan od nacina rada sa datotekama. Ispisacu vam funkciju za unos niza int iz datoteke gde je u prvom redu dat broj N koji predstavlja broj clanova niza., mozda nekome pomogne

#include<fstream.h>

void unos(int niz[],int *n)
{ifstream fajl("unos.txt");
fin >> (*n);
for(i=0;i<*n;i++) fin >> niz;} moze i sa while-om i sa !feof(fajl)

Usput sada se setih jos nesto da vas pitam, ne vezano za datoteke. Zna li iko da li je moguce i na koji nacin ograniciti ili poroduziti niz u toku njegovog koriscena. Ako je neko radio u delphy-ju znace na sta mislim ... tamo postoji naredba setlenght.
[ Alef @ 05.01.2005. 10:59 ] @
Citat:
Usput sada se setih jos nesto da vas pitam, ne vezano za datoteke. Zna li iko da li je moguce i na koji nacin ograniciti ili poroduziti niz u toku njegovog koriscena. Ako je neko radio u delphy-ju znace na sta mislim ... tamo postoji naredba setlenght.


Može… Dinamiči alociraš niz sa:
Code:

#int size = 10;

int *i = (int*)calloc(size, sizeof(int));

pa kad ti treba veći uradiš:

Code:

size += size;
i = (int*)realloc(i, size);
[ Dragi Tata @ 05.01.2005. 13:18 ] @
Meni se čini da čovek pita za C++ a vi mu uporno dajete C rešenja (već smo diskutovali o ovoj pojavi).

Za dinamičke nizove u C++, koristi klasu vector. Imaš kraći primer ovde:

http://cplus.about.com/od/beginnerctutorial/l/aa050102f.htm
[ Bratstvo Jedinstvo @ 05.01.2005. 14:54 ] @
Hvala dragi cale.
Neuk sam sto se tice C-a, tako da ne bih znao da prepoznam razliku izmedju c i c++.
Hvala za link.
[ slavkot @ 05.01.2005. 17:48 ] @
Citat:
Dragi Tata: Meni se čini da čovek pita za C++ a vi mu uporno dajete C rešenja (već smo diskutovali o ovoj pojavi).

Za dinamičke nizove u C++, koristi klasu vector. Imaš kraći primer ovde:

http://cplus.about.com/od/beginnerctutorial/l/aa050102f.htm

Pozdrav, zar se ne može koristiti jednostavniji način za kreiranje dinamičkih nizova u C++, npr.

int *j;
j=new int [50];
............
delete [] j;

[ Dragi Tata @ 05.01.2005. 18:00 ] @
Pa kako je to jednostavnije nego:

Code:

vector<int> j(50);


Ne treba ti ni delete, a i automatski se povećava kad naraste preko 50.
[ slavkot @ 05.01.2005. 18:05 ] @
Volim kad ovako brzo stigne odgovor , hvala na informaciji
[ MilanMilan @ 10.01.2005. 23:02 ] @
A i u vector mozes da strpas bilo koji tip podataka, cak i neki svoj.
[ ivbrcic @ 11.01.2005. 06:52 ] @
Vec sam stavio jedan primjer kako se to radi u cpp-u.
Idi Pa Vidi...

[url] http://www.elitesecurity.org/tema/73886 [/url]
[ Ivand @ 11.01.2005. 10:08 ] @
Onaj primer koji sam ti dao to su vezbe iz skole koje sam radio ,
u fun.h nemas nista bitno osim prototipova funkcija koje se koriste.
[ Bratstvo Jedinstvo @ 11.01.2005. 11:50 ] @
OK snasao sam se za dinamicke nizove.
Primetio sam da ovde na forumu ljudi dosta mesaju C i C++, tj. ljudi koji znaju C odgovaraju na piatnja vezana za C++.
Videh na par mesta da je neko napisao komandu
Code:

while (!feof(f))


mislim da ovo ne moze da prodje u C++ kompajleru, vec
Code:

while  (!(mojFajl.eof())) { .... }


i premetih da ljudi cesto pisu
Code:

#include<iostream.h>
#include<fstream.h>

koliko ja znam sve naredbe iz iostreama se nalaze i u fstream-u.

Moze li iko da mi objasni upotrebu biblioteka fun.h i studio.h , osim ako su to biblioteke iz cistog C.

Pozdrav svima
[ Ivand @ 11.01.2005. 18:40 ] @
ponavljam
fun.h
je zaglavlje koje sam sam napisao sto ce reci da ne postoji na drugim racunarima i ne postoji kao standardna biblioteka.

nije STUDIO

nego je stdIO.h
STanDard Input Output

u njoj se nalaze razne f-cije za rad za ulazom i izlazom
recimo printf , scanf ... kompletnu listu mozes pronaci svuda

i sve je to vezano za C

e sada C++ je samo prosirenje C jezika i donosi nova zaglavlja( biblioteke f-cija)
kao sto su IOSTREAM.h koju koristis umesto stdio.h
iostream nosi nove f-cije za input/output koje su laske za koriscenje
tako da umesto printf iz stdio.h koristis cout iz iostream.h , umesto scanf koristis cin ...


postoji jos tih biblioteka f-cija ...
primer recimo matematicke f-cije kao sto su stepen(pow) , sinus .... se nalaze u math.h

.... etc
[ Ivand @ 11.01.2005. 18:46 ] @
I jos nesto sta C++ donosi u odnosu na C
a to je laksi rad sa dinamickom memorijom

tako da umesto f-cija
malloc za alociranje u c-u
postoji new u c++

realloc ne postoji u c++

umesto free
dolazi delete ...
i tako dalje naravno sintakse za upotrebu ovih f-cija se razlikuju

@Dragi tata

nigde u gornjem textu nije naznaceno da li se trazilo resenje za C ili C ++