[ Djuki @ 06.02.2003. 11:36 ] @
Kako da se u Windowsu kreira tekstualna ili binarna datoteka?
Znam da to radi

FILE *datoteka;
datoteka= fopen("c\fajl.txt", "w");

Negde gresim ali ne znam gde. Probao sam i da napravim datoteku pa da je otvorim u rezimu citanja ali mi ni to nije uspelo. Znaci hocu da mi program kreira datoteku koju posle mogu da vidim na disku i da kasnije u istu ubacujem podatke ili ih iscitavam.
Hvala na odgovoru unapred.
[ Milan Aksic @ 06.02.2003. 12:01 ] @
Mozes, koristeci i std funkcije. Win32 API I/O funkcije ne prave razliku, tako da to na neki nacin omogucuje i vecu slobodu (pored dodatnih mogucnosti).
Najprostiji primer:
Code:

HANDLE file;
DWORD numRead;
char filename;

...
/* otvaras ili pravis novi fajl. Otvaras vec postojeci npr. na sledeci nacin,
   gde je filename u stvari niz karaktera, koji opisuje putanju do fajla */
fileh = CreateFile(filename, GENERIC_READ, 0, 0, OPEN_EXISTING, 0, 0);

...
/* sledeca linija cita 100 bajta. Broj 'stvarno' procitanih bajta se nalazi 
    u numRead. */
success = ReadFile(fileh, buffer, 100, &numRead, 0);

...
/* kada handle ka fajlu vise nije potreban */
CloseHandle(fileh);

Ovo je naravno najprostiji nacin upotrebe, bez overlapped I/O ili Security Attributes.
Ako je potrebno vise puta pisati i citati iz fajla, predlazem ti da mapiras taj fajl u memoriji.
Za sve ostale informacije (tacno objasnjenje parametara ovih funkcija) pogledaj u MSDN-u.

Pozdrav.
[ Djuki @ 06.02.2003. 12:17 ] @
Meni je obavezno koriscenje standardnih funkcija iz stdio.h zaglavlja, jer mi treba za skolu znaci fopen, fseek, fputc, fread itd... Molio bih objashljenje kako kreirati fajl uz pomoc ovih funkcija u Windowsu.
[ Milan Aksic @ 06.02.2003. 12:39 ] @
Onda ti mozda ovo treba:
Code:

FILE *fIn, *fOut;
char file1, file2;

...
// otvaranje u 'binarnom' read mode
fIn = fopen(file1, "rb");

// otvaranje u 'binarnom' write mode
fOut = fopen(file2, "wb");

...
// kada pokazivaci vise nisu potrebni
fclose(fIn);
fclose(fOut);

Za ostalo pogledaj HELP, siguran sam da ima detaljnijih objasnjenja a vrlo je moguce da postoji i poneki example (pogotovu, ako je u pitanju Borland) uz descr.
[ Djuki @ 07.02.2003. 16:00 ] @
Izgleda da nisam bio najjasniji i da me nisi shvatio.
Pitanje je:
Da li funkcija :
Code:
FILE *datoteka;
datoteka=fopen("c:\putanja\fajl.txt", "w+"); 

treba da napravi datoteku fajl.txt ako ona ne postoji u tom direktorijumu?
Ja u stvari hocu da moj program napravi datoteku na disku i u knjigama i pise da ona to i radi kada je rezim "w+" ili "w+b" ako je datoteka binarna. Ali meni je problem sto kad izvrsim ovaj program u direktorijumu c:\putanja\ nema datoteke fajl.txt. Nadam se da sam bio jasniji.
[ Reljam @ 07.02.2003. 18:29 ] @
Prvo, c:\putanja mora da postoji da bi se ovo izvrsilo. Ako taj path postoji, onda ce ovo da radi, osim sto moras da napises \\ umesto \ . Dakle, string je:

Code:
datoteka=fopen("c:\\putanja\\fajl.txt", "w+");