Hogyan tudnám ezt C-ben lekódolni ?
Számozzuk a bemeneti állomány sorait , csak azokat a sorokat számozzuk , melyek osztható 2-vel és 3-al . A sorszámot tegyük a sor végére . Az eredményt írjuk ki egy kimeneti állományba és írjuk felül az eredeti állományt az új számozott soros állománnyal (töröljük le a bemeneti fájlt és a kimeneti fájl neve legyen egyenlő a bemeneti fájl nevével )
Nos program részletenként megvan minden . Csak nem tudom össze rakni .
pl itt a ket file megnyitása, írása .
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fajl1, fajl2;
char fajlnev[100], c;
printf("Adja meg a belvasando file nevet:");
scanf("%s",fajlnev);
fajl1=fopen(fajlnev,"r");
if(fajl1 == NULL)
{
printf("Nem sikerult a %s fajlt megnyitni",fajlnev);
exit(0);
}
printf("Adja meg az irashoz valo file nevet:");
scanf("%s",fajlnev);
fajl2=fopen(fajlnev,"w");
if(fajl2 == NULL)
{
printf("Nem sikerult a %s fajlt megnyitni",fajlnev);
exit(0);
}
return 0;
}
De hogyan tudok soronként olvasni egy file-ban ? Tennék mondjuk akkor egy i segéd változót amit soronként növelnék és ha if (i%2==0 && i%3 == 0) i++;





Azt tanultunk C órában hogy letöltjük a fájl tartalmát egy egy- vagy kétdimenziós táblázatba, és utána ettől a táblázattól egyszerűbb mindent számolni.
Szóval ha sikerült megnyitni a fájlt, azt írd, hogy :
f=fopen(fajlnev, "r");
int i, var; // ha egész számokról
beszéltél, nem értettem teljesen
int tab[];
if (f!=NULL) {
while(!feof(f)) {
fscanf(f, "%d", &var);
t[i]=var;
i++;
}
fclose(f);
} else printf("Nem sikerült a fájlt megnyitni"\n);





Legegyszerűbb az fgets függvény: [link]
Megadod neki a char tömböt, amibe olvasol, hogy maximum hány karaktert olvashat be (a lezáró \0 karakterrel együtt), és a FILE változód.





Példakód: [link]
Ez annyit csinál, hogy addig olvassa soronként a fájlt, amíg van benne adat.





nagyon egyszeru.
soronkent olvasod a bemeneti fajlt (getline()) és ha sorszam oszthato 2-vel vagy harommal akkor odacsapod a sorszamot is a kimeneti fajlba
ha megvagy akkor a bemeneti fajlt torlod és a kimeneti fajlt atnevezed.
ahogy latod nem kell a teljes fajl tartalmat elmenteni memoriaba ahogy az elso valaszolo javasolta.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!