Az alábbi C kódot hogy lehetne átírni úgy, hogy ne egyesével, hanem pufferbe olvassa és írja ki a kimenő fájlba a karaktereket?
A fgetc-re nem tudom alkalmazni hogy a karaktertömbbe olvasson, a feof-ra igen, de a feof ha talál akár cak egyetlen 26 értékű, vagy más karaktert amiről azt gondolja hogy fájl vége van, akkkor abban a pillanatban meg is áll az olvasással...
Tehát miként lehetne módosítani?
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main(int argc, char *argv[]){
FILE *be, *ki;
char buffer[45000];
int c;
if(argc<3){
fprintf(stderr, "Programindítás:\n"
"programnév, forrásfájl, célfájl.\n");
return 1;
}
if(!(be=fopen(argv[1],"rb"))){
perror(argv[1]);
return 1;
}
if(!(ki=fopen(argv[2],"wb"))){
perror(argv[2]);
fclose(be);
return 1;
}
while((c=fgetc(be))!=EOF)
fputc(c,ki);
fclose(be);
fclose(ki);
return 0;
}
Azzal próbáltam, feof és fread-del, de sose ért a fájl végére...
Bármilyen megoldás érdekelne hogy puffereljen és a fájl végére érjen normálisan.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!