#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <time.h> //clock_t
int main(void) {
setlocale(LC_ALL, "");
const char* text = "123 Hello\n\
456 World\n";
FILE* fp = NULL;
errno_t err; //Hibakódok tárolására szolgáló típus, debuggolás könnyítésére használható, 0-át ad vissza ha sikeres
int iteraciok=1000;
err = fopen_s(&fp, "output.txt", "w");
if (err != 0) {
perror("output.txt megnyitása sikertelen"); //Kifejezetten hibák leírására készült, és az aktuális hibaérték (errno) alapján ír ki egy hibaüzenetet a szabványos hibakimenetre (stderr).
exit(EXIT_FAILURE); //exit függvényt érdemes használni pl. külső függvények hiba ágaiban, egyébként returnnal helyettesíthető.
}
for (int i = 0; i < iteraciok; i++) {
fputs(text, fp); //fputs egy előre definiált, már formázott karakterlánc írására szolgál egy adott fájlba vagy kimeneti streambe - párja az fputc
} //fprintf általánosabb, formázott kiírást megvalósít, nem csak statikus karakterláncokat, hanem változókat, számokat, is képes beilleszteni
fclose(fp); //egy előre megadott formátum alapján
err = fopen_s(&fp, "output.bin", "wb"); //.bin , wb szintaktika....
if (err != 0) {
perror("output.bin megnyitása sikertelen");
exit(EXIT_FAILURE);
}
for (int i = 0; i < iteraciok; i++) {
fwrite(text, sizeof(char), strlen(text), fp);
}
fclose(fp);
const int szamIteraciok = 10E5;
FILE* fp_txt = NULL;
FILE* fp_bin = NULL;
clock_t start, stop;
double elteltIdo;
err = fopen_s(&fp_txt, "numbers.txt", "w");
if (err != 0) {
perror("numbers.txt megnyitása sikertelen");
exit(EXIT_FAILURE);
}
err = fopen_s(&fp_bin, "numbers.bin", "wb");
if (err != 0) {
perror("numbers.bin megnyitása sikertelen");
fclose(fp_txt);
exit(EXIT_FAILURE);
}
start = clock();
for (int i = 0; i < szamIteraciok; i++) {
fprintf(fp_txt, "%d\n", i);
}
stop = clock();
fclose(fp_txt);
elteltIdo = ((double)(stop - start)) / CLOCKS_PER_SEC; //standard könyvtár konstans
printf("Szöveges fájlba írás: %f másodperc.\n", elteltIdo);
start = clock();
for (int i = 0; i < szamIteraciok; i++) {
fwrite(&i, sizeof(int), 1, fp_bin);
}
stop = clock();
fclose(fp_bin);
elteltIdo = ((double)(stop - start)) / CLOCKS_PER_SEC;
printf("Bináris fájlba írás: %f masodperc.\n", elteltIdo);
return 0;
}