extraction operator
Főnév
extraction operator (tsz. extraction operators)
- (informatika) A
>>extrakciós operátor C++-ban egy beépített operátor, amelyet adatbeolvasásra használunk, gyakran azstd::cinvagy fájlfolyamok (std::ifstream) esetében.
Használata fájlfolyamokkal (ifstream)
Amikor egy fájlból akarunk adatot olvasni, az ifstream (input file stream) objektumot használjuk, és az extrakciós operátorral (>>) olvashatunk be adatokat.
Alapvető példa – Szövegfájl beolvasása soronként
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream inputFile("adatok.txt"); // Megnyitjuk a fájlt
std::string sor;
if (!inputFile) {
std::cerr << "Hiba: A fájlt nem sikerült megnyitni!\n";
return 1;
}
while (inputFile >> sor) { // Beolvasás szóközökig
std::cout << sor << std::endl;
}
inputFile.close(); // Fájl bezárása
return 0;
}
Magyarázat: - Az std::ifstream inputFile("adatok.txt"); megnyitja az “adatok.txt” fájlt. - A while (inputFile >> sor) soronként olvas, de szóközöknél elválasztja a szöveget. - A std::cout << sor; kiírja a konzolra a beolvasott adatokat. - A close() metódussal zárjuk a fájlt.
Számok beolvasása fájlból
Ha egy fájlban számokat tárolunk, például:
numbers.txt
12 45 78 33 99
A beolvasás így nézhet ki:
#include <iostream>
#include <fstream>
int main() {
std::ifstream file("numbers.txt");
int number;
if (!file) {
std::cerr << "Nem sikerült megnyitni a fájlt!\n";
return 1;
}
while (file >> number) { // Számok beolvasása
std::cout << "Beolvasott szám: " << number << std::endl;
}
file.close();
return 0;
}
Eredmény a konzolon:
Beolvasott szám: 12 Beolvasott szám: 45 Beolvasott szám: 78 Beolvasott szám: 33 Beolvasott szám: 99
A >> operátor automatikusan az adott típusba próbálja beolvasni az adatot.
Beolvasás teljes soronként (getline)
Ha a fájl teljes sorait akarjuk beolvasni, az std::getline függvényt kell használni:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream file("szoveg.txt");
std::string line;
if (!file) {
std::cerr << "Hiba: Nem sikerült megnyitni a fájlt!\n";
return 1;
}
while (std::getline(file, line)) { // Soronkénti beolvasás
std::cout << line << std::endl;
}
file.close();
return 0;
}
Itt a >> operátor helyett a std::getline metódust használjuk, amely egy egész sort beolvas.
Mikor nem használható az extrakciós operátor (>>)?
- Ha teljes sorokat akarunk beolvasni (ekkor
std::getlineszükséges). - Ha az adatok között szóköz is lehet (
>>szóköznél elvágja a beolvasást). - Ha az adat típusa eltér a vártól (pl. egy stringbe számokat olvasunk).
- Ha fájl végére érünk (
eof()vagyfail()metódusok segíthetnek az ellenőrzésben).
Összegzés
- Az extrakciós operátor (
>>) C++-ban fájlokból vagy standard inputból történő adatbeolvasásra szolgál. - A
std::ifstreamhasználható fájlok olvasására, a>>operátor pedig szóközig olvas be adatokat. - Ha teljes sorokat kell beolvasni,
std::getline()ajánlott. - A beolvasásnál érdemes mindig ellenőrizni, hogy a fájl sikeresen megnyílt-e (
if (!file)).
- extraction operator - Szótár.net (en-hu)
- extraction operator - Sztaki (en-hu)
- extraction operator - Merriam–Webster
- extraction operator - Cambridge
- extraction operator - WordNet
- extraction operator - Яндекс (en-ru)
- extraction operator - Google (en-hu)
- extraction operator - Wikidata
- extraction operator - Wikipédia (angol)