Új hozzászólás Aktív témák
-
válasz
kiskatus
#757
üzenetére
Hali!
Először is szívesen segítek Neked, a most következő rész az csak úgy kikívánkozott belőlem, NEM NEKED SZÓL!
"Elvittem az általad megírt programot és nem fogadta el, mert az fseek pozicionálást és az ftell-t még nem tanultuk."
Amikor ezt elolvastam, két idézet suhant át az agyamon, az első Hofi Géza kabaréból, míg a másik egy PH tag aláírásából származik(bár ezt nem szó szerint idézem)
"Szűz Mária idesanyám, aki a mennyekben lakozol titokban..." illetve
"nem az a baj, hogy nagy az Isten állatkertje, hanem az, hogy alacsony a kerítés"
Az aki ezt a feladatot feladta(alapszintű fájlkezelés kategória) és nem tanítja meg az alapszintű fájlkezelést Nektek(fseek, ftell stb), annak jobb lenne ha visszamászna a kerítésen belülre.
Ugyanis oly módon kellett megírni a programot(fseek, ftell nélkül), hogy nyugodtan rá lehetne ragasztani azt a címkét, hogy "A világ leglassabbra optimalizált fájl-összehasonlító alkalmazása avagy hogy ne írjunk C-ben ilyen programot"
Na mindegy...imhol a kód...
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned long ErrorCounter,FSize1,FSize2;
unsigned char chFirst, chSecond;
FILE * Szoveg1;
FILE * Szoveg2;
FILE * Kimenet;
printf("Binaris osszehasonlitas\n\n");
if (!(Szoveg1 = fopen("first.txt","rb"))) {
fprintf(stderr,"Nem lehet megnyitni a 'first.txt' fajlt...\n");
getchar();
exit(-1);
}
if (!(Szoveg2 = fopen("second.txt","rb"))) {
fprintf(stderr,"Nem lehet megnyitni a 'second.txt' fajlt...\n");
fclose(Szoveg1);
getchar();
exit(-1);
}
//itt változik némileg a kód, csak úgy lehet meghatározni a fájlok hosszát
//ha végig olvasom
FSize1=0;
while (fread(&chFirst,1,1,Szoveg1)==1) FSize1++;
FSize2=0;
while (fread(&chFirst,1,1,Szoveg2)==1) FSize2++;
if (!FSize1 || !FSize2) {
printf("A fajlok merete nem lehet 0 byte...");
fclose(Szoveg1);
fclose(Szoveg2);
getchar();
exit(-1);
}
if (FSize1!=FSize2) {
printf("A ket fajl merete nem azonos...\n");
fclose(Szoveg1);
fclose(Szoveg2);
getchar();
exit(-1);
}
rewind(Szoveg1);
rewind(Szoveg2);
//innentől változatlan
if (!(Kimenet = fopen("error.txt","wt"))) {
fprintf(stderr,"Nem lehet megnyitni az 'error.txt' fajlt...\n");
fclose(Szoveg1);
fclose(Szoveg2);
getchar();
exit(-1);
}
ErrorCounter=0;
while (fread(&chFirst,1,1,Szoveg1)==1) {
fread(&chSecond,1,1,Szoveg2);
if (chFirst!=chSecond) {
fprintf(Kimenet,"File-pozicio: %#.8lx %#.2x <> %#.2x\n",ftell(Szoveg1),chFirst,chSecond);
ErrorCounter++;
}
}
if (ErrorCounter) printf("%lu elteres talalhato a ket fajl kozt.\nNezze meg az 'error.txt' fajl tartalmat...\n",ErrorCounter);
else printf("A ket fajl azonos...\n");
fclose(Szoveg1);
fclose(Szoveg2);
fclose(Kimenet);
system("pause");
return 0;
}Fire.
UI: ha legközelebb is kódot illesztesz be a HSZ-be, akkor légyszíves használd az erre a célra "kifejlesztett"
KÓD feliratú gombot. -
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Kínai tech-túra összefoglaló
- Kezdő fotósok digitális fényképei
- Linux kezdőknek
- NFL és amerikai futball topik - Spoiler veszély!
- Hivatalos a OnePlus 13 startdátuma
- Anime filmek és sorozatok
- LordAthis: RETRÓnia - RETRÓ Mánia - Úton van hozzám egy csodás történelmi darab!
- Minőségi ugrást hozhat a One új médiaboxa?
- exHWSW - Értünk mindenhez IS
- New World - az új Amazon MMORPG
- További aktív témák...
- Sapphire Pulse 6800XT 16Gb Kitűnő! Ingyen posta!
- Cisco Telepresence MX300 G2 - 55" Interaktiv Monitor - Konferencia rendszer
- 70" Interkativ Érintőképernyős Monitor / All In one PC - InFocus INF7021A Multi Touch
- Microsoft Surface Hub (v1) 1597 - 55" All in One PC - Érintőképernyős monitor
- Dell PowerSwitch N2048 48 Port Gigabit Ethernet 2 Port 10Gb SFP+ Switch
- BESZÁMÍTÁS! Asrock B450M R7 3800X 16GB DDR4 512GB SSD RX 6600XT 8GB GameMax STORM Black Adata 600W
- LG OLED & OLED evo Televíziók: BLACK NOVEMBER -30%
- Bomba ár! Lenovo ThinkPad L13 G3 - i5-1245U I 16GB I 256SSD I 13,3" FHD Touch I NBD Gari!
- ÁRGARANCIA!Épített KomPhone i5 14400F 16/32/64GB RAM RX 9060 XT 16GB GAMER PC termékbeszámítással
- Általános igazgatóhelyettes tábla üvegből eladó
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő


