A std::getline() használata C++-ban

A std::getline() egy szabványos C++ függvény, amely soronként olvas be szöveges adatokat egy szöveges fájlból, vagy bármely karakterfolyamból, például cin-ből. Ez egy hasznos függvény olyan szöveges fájlok feldolgozásához, amelyek sorokra vannak bontva, vagy a felhasználótól való szöveges bemenetek feldolgozásához.

std::getline() használata

cpp
#include <iostream>
#include <fstream>
#include <string>

int main() {
// Fájlból olvasás
std::ifstream file("input.txt");
std::string line;
while (std::getline(file, line)) {
// Feldolgozza a sort
}

// Felhasználótól való olvasás
std::string input;
std::cout << "Írjon be egy sort: ";
std::getline(std::cin, input);
}

A std::getline() függvény a következőképpen használható:

1. Nyisson meg egy szövegesfájlt olvasásra, vagy hozzon létre egy std::ifstream objektumot a fájlhoz.
2. Deklaráljon egy string változót, amelybe a sorok be lesznek olvasva.
3. Hívja meg a std::getline() függvényt, amelynek két paramétere van: a bemeneti stream és a string változó, amelybe a sor kerül.
4. A függvény akkor adja vissza true értéket, ha sikeresen olvasott be egy sort, és false értéket, ha a fájl vége elért, vagy hiba történt.
5. Ismételje meg a 3. és 4. lépést, amíg a std::getline() függvény true értéket ad vissza.

Példa:

cpp
// Fájlból olvasás
std::ifstream file("input.txt");
std::string line;
while (std::getline(file, line)) {
std::cout << line << std::endl;
}

// Felhasználótól való olvasás
std::string input;
std::cout << "Írjon be egy sort: ";
std::getline(std::cin, input);
std::cout << "A beírt sor: " << input << std::endl;

std::getline() paraméterei

| Paraméter | Leírás |
|—|—|
| stream | Az a karakterfolyam, amelyből a sorokat beolvassuk. Ez lehet egy fájlból származó bemeneti stream, például std::ifstream, vagy a felhasználótól érkező bemeneti stream, például std::cin. |
| str | A string változó, amelybe az olvasott sor kerül. |

std::getline() visszatérési értéke

A std::getline() függvény a következő visszatérési értékeket adhatja vissza:

* true: Ha sikeresen olvasott be egy sort.
* false: Ha a fájl vége elért, vagy hiba történt.

std::getline() használatának előnyei

* Soronkénti olvasás: A std::getline() függvény soronkénti szöveges adatok olvasására szolgál. Ez hasznos olyan szöveges fájlok feldolgozásához, amelyek sorokra vannak bontva.
* Egyszerű használat: A std::getline() függvény egyszerűen használható, és csak két paramétert igényel.
* Hatékony: A std::getline() függvény hatékonyan olvas be sorokat, és nem igényel különleges pufferelést vagy memóriakezelést.

std::getline() használatának hátrányai

* Csak szöveges adatok: A std::getline() függvény csak szöveges adatok olvasására szolgál. Bináris adatok olvasására nem használható.
* Sorképek: A std::getline() függvény nem olvassa be a sorképeket. Ha a sorképek fontosak, akkor azokat külön kell feldolgozni.

Következtetés

A std::getline() függvény egy hasznos és sokoldalú függvény szöveges adatok soronkénti olvasására. Egyszerű használni, hatékony, és különféle alkalmazásokban használható, mint például fájlok feldolgozása és felhasználói bemenetkezelés. Annak ellenére, hogy vannak bizonyos korlátai, a std::getline() függvény továbbra is nélkülözhetetlen eszköz a C++ szöveges adatfeldolgozó eszköztárában.

Gyakran Ismételt Kérdések (GYIK)

1. Mi a különbség a std::getline() és a getline() függvények között?

A std::getline() a C++ standard könyvtár része, míg a getline() függvény a C standard könyvtár része. A std::getline() függvény szabványosabb és könnyebben használható, mint a getline() függvény.

2. Hogyan olvashatok be több sort egy stringbe?

Több sort olvashat be egy stringbe egy ciklus segítségével, amíg a std::getline() függvény nem adja vissza false értéket.

3. Hogyan kezelhetem a std::getline() függvény hibáit?

A std::getline() függvény hibáit a stream.fail() függvény segítségével kezelheti.

4. Hogyan olvashatok be egy egész sort, beleértve a sorképeket?

Egész sort, beleértve a sorképeket, úgy olvashat be, hogy megadja a std::getline() függvénynek egy ws stringet.

5. Hogyan olvashatok be egy sort, és távolíthatom el belőle a szóközöket?

Egy sort olvashat be, és eltávolíthatja belőle a szóközöket a trim() függvény segítségével.

6. Hogyan olvashatok be egy sort, és konvertálhatom egész számmá?

Egy sort olvashat be, és konvertálhatja egész számmá a stoi() függvény segítségével.

7. Hogyan olvashatok be egy sort, és konvertálhatom lebegőpontos számmá?

Egy sort olvashat be, és konvertálhatja lebegőpontos számmá a stod() függvény segítségével.

8. Hogyan olvashatok be egy sort, és konvertálhatom bool értékké?

Egy sort olvashat be, és konvertálhatja bool értékké a stoi() függvény segítségével.

9. Hogyan olvashatok be egy sort, és konvertálhatom nagybetűssé?

Egy sort olvashat be, és konvertálhatja nagybetűssé a toupper() függvény segítségével.

10. Hogyan olvashatok be egy sort, és konvertálhatom kisbetűssé?

Egy sort olvashat be, és konvertálhatja kisbetűssé a tolower() függvén segítségével.

  Hogyan lehet megváltoztatni a családkezelőt a PS4-en