Hogyan kell fájlba írni számot/számokat?
Ez a kódom:
int szam = 16;
FILE *fp;
fp = fopen(”fajl.txt”, ”w”);
fwrite(&szam, sizeof(int), 1,
fp);
fflush(fp);
fclose(fp);
A szöveg kiíratása megy,ez viszont ez nem írja ki a számot,hanem valami karaktert helyette.
És hogyan tudok fájlból beolvasni?
ELŐRE IS KÖSZI!!
Próbáld meg az fprintf függvényt:
Haszálnata fprintf(FILE *, formátum, változók); pont mint a sima printf, csak az első paramtér afájl pointer.
A te esetedben:
fprintf(fp,"%d ",szam);
Ha beolvasni akarsz, akkor a fájlt olvasásra kell nyitni.
FILE * fp=fopen("fajl.txt","r");
A beolvasásra az fprintf párját használhatot, az fscanf-et.
Használata fscanf(FILE *, formátum, beolvasandó változó címe). Ha egy teljes fájlt akarsz beolvasni, ciklussal, amíg nincs vége a fájlnak (feof(FILE *) ezt adja meg).
Tehát pl.:
while (!feof(fp) ) {
fscanf(fp,"%d",&szam);
}
Szerintem használd ezt: #include <fstream>
int main()
{
ifstream fin("text.txt"); //beolvasáshoz használt fgv nyissa meg
ofstream fout("textout.txt");
//kiiráshoz használt fgv
//a fálj név lehet bármilyen kiterjesztésű, de csak szövegkezelő nyissa meg, ifstream, ofstream argumentumai lehetnek megegyezőek is
fin>>n; //n változóba olvasás, következő híváskor a következő sort olvassa a fájlból
fout<<n; //n változót menti
// karakterláncokat betűként, egyenként kell pakolgatni
//pl:
char tomb[50]={Ez egy szoveg};
for (int i=0;i<n;i++)
fout<<tomb[i];//fin esetén is igy kell használni.
// használat után ezel kell lezárni a függvényeket
// igy ujra meghivhatjuk az ifstream fuggvenyt vagy az //ofstreamot más nevű állományok kezelésére
fin.close();
fout.close();
//beolvasáshoz kötelezően létrehozzuk az állományt(text.txt) a main.c mellé, kiiráshoz autómatikusan létrejön az az állomány;
Fogalmad sincs arról mit csinálsz. Ne a fájlírást tanuld meg hanem használni a DOKUMENTÁCIÓT.
fwrite bináris fájlba ír. fflush ott kegyetlennagy baromság.
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!