Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek.

Hasonló előadás


Az előadások a következő témára: "UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek."— Előadás másolata:

1 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek

2 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS fstream  A C++ nyelvben a file műveleteket is megvalósíthatjuk Stream-ek segítségével  Így az alap file műveletek egyszerűen használhatóak  Include-olni kell az fstream header-t, mely tartalmazza az alapvető műveleteket: #include  Beolvasáshoz: ifstream  Íráshoz: ofstream

3 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Alapvető megnyitási módok  in : a fájlt olvasásra nyitjuk meg (fstream esetében ez az alapértelmezett)  out : a fájlt írásra nyitjuk meg (ofstream esetében ez az alapértelmezett)  app : hozzáfűzésre nyitjuk meg (append)

4 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ofstream  Az ofstream osztály segítségével file-ba tudunk adatokat írni.  Konstruktorai:  ofstream ( );//default konstruktor, a fájl megnyitását később kell végrehajtani  ofstream ( const char * filename, ios_base::openmode mode = ios_base::out ); //konstruktor első paramétere a fájl elérési útja, 2. paramétere a megnyitás módja (alapértelmezett: out)

5 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ofstream  Példányosítás írásra: ofstream out; out.open( fileName );  VAGY ofstream out( fileName);  ofstream alapértelmezetten írásra nyitja meg a fájlokat. A fenti használat ugyanaz, mintha így hoztuk volna létre: ofstream out( fileName, ofstream::out);

6 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ofstream  Példányosítás hozzáfűzésre: ofstream out; out.open( fileName, ofstream::app );  VAGY ofstream out( fileName, ofstream::app );

7 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ofstream  Használat: int a = 5; double b = 3.4; char* str = ”dfnsknfjksd”; ofstream out( ”out.txt” ); out << a << b << str << endl; out.close(); //le kell zárni

8 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ifstream  Az ifstream segítségével file-ból tudunk olvasni.  Konstruktorai:  ifstream ( ); //default konstruktor, a fájl megnyitását később kell végrehajtani  ifstream ( const char * filename, ios_base::openmode mode = ios_base::in ); //konstruktor első paramétere a fájl elérési útja, 2. paramétere a megnyitás módja (alapértelmezett: in)

9 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ifstream  Példányosítás olvasásra: ifstream in; in.open( filename );  VAGY ifstream in( filename );

10 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS ifstream  Használat: ifstream in( ”input.txt” ); int a; double b; in >> a >> b; in.close();

11 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Egész sor beolvasása  ifstream in( ”input.txt” ); char input[ 256 ]; in.getline( input, 256 );  #include ifstream in( ”input.txt” ); string input; getline( in, input );

12 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Közös függvények  is_open() //megadja, hogy nyitva van-e file  open(const char * filename, ios_base::openmode mode = ios_base::out ) //megnyitja a file-t (ofstream)  open(const char * filename, ios_base::openmode mode = ios_base::in ) //megnyitja a file-t (ifstream)  close() //lezárja a file-t  eof() //true, ha elértük a file végét

13 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kivételkezelés alapjai  Az olyan kódrészleteknél, melyek „hibát” eredményezhetnek, érdemes lehet try-catch blokkokat használnunk.  A „hibát okozó”, és az azzal közvetlen összefüggésben lévő program részletet tesszük try blokkba. Ekkor, ha hiba történik, lehetőség van egy exception-t (kivételt) dobni (throw).  Ezt a kivételt „kaphatjuk el”, és kezelhetjük a catch blokkban.

14 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kivételkezelés alapjai  Példa (kivétel dobása): const int DivideByZero = 10;//a hiba kódja //függvény, mely eloszt két számot double divide(double x, double y) { if(y==0) { //ha az osztó 0 throw DivideByZero; //dob egy kivételt (itt egy 10-es kódú kivételt), és a függvénynek meg is áll a futása } return x/y; //ha nem volt kivétel, végrehajtja az osztást }

15 UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Kivételkezelés alapjai  Példa (kivétel elkapása): try { //try blokkba rakjuk az osztás függvényt, hiszen dobhat hibát (előző dia…) divide(10, 0); } catch(int i) { //ha dobott egy int típusú kivételt, azt elkapjuk if(i==DivideByZero) { //ha a kivétel ilyen típusú volt, kiírjuk az errort cerr<<"Divide by zero error"; }


Letölteni ppt "UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 9. Gyakorlat Alap file műveletek."

Hasonló előadás


Google Hirdetések