Press "Enter" to skip to content

A szövegfájl készítése

A fájlok lehetővé teszik a felhasználó számára, hogy nagy mennyiségű adatot olvasson közvetlenül a lemezről anélkül, hogy belépne a billentyűzetről. A fájlok két fő típusa van: Szöveg és bináris.

A szöveget bármilyen karakterből álló fájloknak nevezik. A vonalakon szervezik őket, amelyek mindegyike a “végvonal” szimbólummal végződik. Maga a fájl végét a “fájl vége” szimbólum jelzi. Amikor információ rögzítésére egy szöveges fájl, megnézheti, amelynek segítségével bármilyen szövegszerkesztővel, az összes adatot átalakítjuk a karakter és a tárolt szimbolikus formában.

A bináris fájlok, az információt olvasni és rögzíteni blokkok formájában egy bizonyos méretet, amely az adatok tárolhatók bármilyen típusú és szerkezetű.

A speciális adattípusokat a fájlok, az úgynevezett streamek kezelésére használják. Folyam ifstream az olvasási módban dolgozó fájlokkal szolgál, és ofstream A felvételi mód. Együttműködik fájlokat mind bejegyzések és az olvasás szolgál egy patak fstream.

A C ++ programokat, ha dolgozik, szöveges fájlok, csatlakoztatni kell a könyvtárak iostream és fstream.

Annak érdekében, hogy rögzítse az adatokat a szöveges fájl, akkor köteles:

  1. Ismertesse egy változó típusát ofstream.
  2. nyitott fájlt funkció Nyisd ki.
  3. megjelenítési információt a fájl.
  4. Ügyeljen arra, hogy zárja be a fájlt.

Olvasni az adatokat egy szöveges fájlt kell tennie:

  1. Ismertesse egy változó típusát ifstream.
  2. nyitott fájlt funkció Nyisd ki.
  3. Információt olvasni a fájl olvasása közben minden adat rész, azt kell ellenőrizni, hogy a fájl végére kell elérni.
  4. Bezárási fájl.

Vedd adatokat egy szöveges fájlt

Mint korábban említettük, hogy elkezd dolgozni egy szöveges fájl, akkor le kell írnia a típusú változó ofstream. Például:

ofstream F;

A változó jön létre F Ahhoz, hogy rögzítse az adatokat a fájl. A következő szakaszban a fájlt kell megnyitni a felvételt. Az általános esetben az áramlási nyíláskezelő meg fogja vizsgálni:

F.Nyisd ki(“Fájl”, Mód);

Itt F – A leírt változó hurok, Fájl – Teljes fájlnév a lemezen, Mód – Működtetett fájl mód. Ne feledje, hogy a teljes fájlnév megadásakor kettős fekvést kell tennie. A keringéshez például a fájlhoz Hab, A mappában található WebhelyekLemezen D, A programnak meg kell adnia: D: \\ webhelyek \\Fiókok.Txt.

A fájl az alábbi módok valamelyikében nyitható meg:

  • IOS :: IN – Nyissa meg a fájlt az adatolvasási módban; Az üzemmód az alapértelmezett mód a patakokhoz ifstream;
  • IOS :: OUT – Nyissa meg a fájlt az adatfelvétel módban (a meglévő fájlról szóló információ megsemmisült); Az üzemmód az alapértelmezett mód a patakokhoz hurok;
  • iOS :: App – Nyissa meg a fájlt az adatfelvétel módban a fájl végéig;
  • IOS :: evett – a nyitott fájl végére lépjen;
  • IOS :: Trunch – Clear fájl, ez az iOS :: OUT módban történik;
  • IOS :: NOCREATE – NE végezze el a fájl megnyitásának működését, ha nem létezik;
  • iOS :: NorePlace – Ne nyisson meg meglévő fájlt.

A módparaméter hiányozhat, ebben az esetben a fájl az alapértelmezett módban nyílik meg a szálra.

A fájl sikeres megnyitása után (bármely módban) a változóban F tárolják Igaz, másképp hamis. Ez lehetővé teszi, hogy ellenőrizze a fájlnyitás működésének helyességét.

Nyissa meg a fájlt (például a fájlba) D: \\ webhelyek \\Fiókok.Txt) A felvételi módban az alábbi módok egyike rögzíthető:

1
2
3
4
5
6
7
nyolc
kilenc
tíz

// Első módszer
az fstream f;
Hab (& #; D: \\ webhelyek \ t./ Strongtxt & #; ios: out);
// második módszer, iOS :: OUT mód az alapértelmezett mód
// az áramlásra
az fstream f;
Hab (& #; D: \\ játék \ hab & #);
// A harmadik módszer egyesíti a változó leírását és a patak típusát
// és nyitott fájl egy operátorban
Az fstream f (& #; D: \\ játék \ hab & #; ios: out);

Megnyitása után egy fájlt a felvételi mód, egy üres fájl jön létre, amelyben információt képes tárolni.

Ha meglévő fájlt szeretne megnyitni a párhuzamosságban, akkor az értéket módban kell használnia iOS :: alkalmazás.

A fájl felvételi módjának megnyitása után ugyanúgy írhat a képernyőn, csak a szabványos kimeneti eszköz helyett COUT Meg kell adnia a nyitott fájl nevét.

Például írni a patakra F változó A, A kimeneti operátor megnézi:

Fa;

A stream szekvenciális kimenetéhez G változók B, C, D A kimeneti üzemeltető:

GBCD;

Az áramlási zárást a kezelő segítségével végezzük:

Hab ();

Például vegye figyelembe a következő feladatot.

1. feladat

Hozzon létre egy szöveges fájlt D: \\Webhelyek]Fiókok.Txt és írd hozzá N valós számok.

Megoldás

1
2
3
4
5
6
7
nyolc
kilenc
tíz
tizenegy
12
13
tizennégy
15
16
17
tizennyolc
19
húsz
21
22
23
24
25
26
27
28
29
harminc
31

#Nclude & #; stdafx.H & #;
#Neblude iostream
#include fstream
#Include iomanip
Felhasználása std;
Int Main ()
{
setlocale (lc_all, & #; rus & #);
int i, n;
Kettős a;
// leírja az adatfolyamot, hogy írjon adatokat a fájlba
az fstream f;
// Nyissa meg a fájlt felvételi módban,
// ios :: Az üzemmód alapértelmezés szerint állítható be
Hab (& #; D: \\ webhelyek \ tos & #; ios: out);
// Adja meg a valós számok számát
Cout & #; n = & # ;; cinn;
// ciklus a valós számok megadásához
// és írja őket a fájlba
(i = 0, in, i ++)
{
Cout & #; a = & # ;;
// a szám bevitele
Cina;
Zsír & # ;;
}
// árvízbezárás
Hab ();
Rendszer (& #, szünet, és #);
Visszacsapás;
}

Információk olvasása szöveges fájlból

Annak érdekében, hogy információt olvasson egy szövegfájlból, leírnia kell a típusváltozót ifstream. Ezt követően meg kell nyitnia egy olvasási fájlt az üzemeltető segítségével Nyisd ki. Ha a változót hívják F, Az első két üzemeltető ilyen lesz:

1
2

ifstream f;
Hab (& #; D: \\ sites \\ Hab & #; ios :: in);

Miután megnyitotta a fájlt az olvasási módban, olvashatja el az információt csak a billentyűzeten, csak helyett cin Meg kell adnia az adatfolyam nevét, ahonnan az adatok megtörténnek.

Például, hogy az adatokat a patakról olvassa el F változóban A, A bemeneti operátor így fog kinézni:

Fa;

A szövegszerkesztőben két számot osztottak meg, ha legalább az egyik karakter között van: egy hely, fül, string szimbólum. Nos, amikor egy programozó előre ismeri, hogy hány és milyen értékeket tárolnak egy szövegfájlban. Azonban gyakran csak a fájlban tárolt értékek típusára ismert, míg a számuk eltérő lehet. A probléma megoldásához az értékeket felváltva kell olvasni a fájlból, és minden egyes olvasás előtt ellenőrizni kell, hogy a fájl vége elérje-e. És segítsen ezt a funkciót Hab (). Itt F – Flow Name A funkció logikai értéket ad vissza: Igaz vagy hamis, Attól függően, hogy a fájl végét elérjük-e.

Következésképpen a teljes fájl tartalmának olvasásának ciklusa a következőképpen írható:

1
2
3
4
5
6
7
nyolc
kilenc

// Szervezze meg az értékek olvasását a fájlból, végrehajtás
// ciklus megszakad, amikor eléri a fájl végét,
// Ebben az esetben a Hab () visszaadja az igazságot
Míg (!Hab ())
{
// Olvassa el a következő értéket az F áramlásról a változóhoz a
Fa;
// A következő a változó értékének feldolgozása
}

Az anyag jobb asszimilációjára tekintse meg a feladatot.

2. feladat

Egy szövegfájlban D: \\ játék \\ A Hab-ot valós számok tárolják, megjelenítik őket a képernyőn, és kiszámítják a számukat.

Megoldás

1
2
3
4
5
6
7
nyolc
kilenc
tíz
tizenegy
12
13
tizennégy
15
16
17
tizennyolc
19
húsz
21
22
23
24
25
26
27
28
29
harminc
31
32
33
34
35
36
37
38
39

#Nclude & #; stdafx.H & #;
#Neblude iostream
#include fstream
#Include iomanip
#Slude stdlib.H
Felhasználása std;
Int Main ()
{
setlocale (lc_all, & #; rus & #);
int n = 0;
Lebeg a;
Fstream f;
// Nyissa meg a fájlt olvasási módban
Hab (& #; D: \\ sites \ hab & #;);
// Ha a fájlnyílás helyesen telt el, akkor
Ha (f)
{
// ciklus az értékek olvasásához a fájlból; A ciklus végrehajtása megszakad,
// A fájl végének elérésekor ebben az esetben a HAB () visszaadja az igazságot.
Míg (!Hab ())
{
// Olvassa el a következő értéket az F áramlásról a változóhoz a
Fa;
// kimeneti változó érték A képernyőn
Couta & #; \ t & # ;;
// növeli a számok számát
N ++;
}
// árvízbezárás
Hab ();
// Okagov a számok számáról
cout & #; n = & #; nendl;
}
// Ha a fájl megnyitása helytelenül, a kimenet
// üzenetek hiánya egy ilyen fájl
Elsecout & #; A fájl nem létezik & #; endl;
Rendszer (& #, szünet, és #);
Visszacsapás;
}

Ez egy viszonylag surround lecke a szövegfájlokon. A következő cikkben a manipuláció módszerei tekintendők, amelyekkel a bináris fájlok a C ++ -ben kerülnek feldolgozásra.

Kapcsolódó nyilvántartások:

Comments are closed, but trackbacks and pingbacks are open.