C++: Szóközöket tartalmazó string bekérése

Programozással kapcsolatos cikkek / C, C++ (2771 katt)

Ha egy C++ konzol alkalmazásban egy olyan stringet szeretnénk bekérni a felhasználótól, amely szóközt is tartalmazhat, akkor problémákba ütközhetünk, ha a cin >> nev típusú megoldást próbáljuk meg használni:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string nev;

cout << "Ird be a neved: ";
cin >> nev;

cout << "Hello, " << nev << "!" << endl;

return 0;
}



Ebben az esetben ha a kérdésre névként a Pista bacsi szöveget adjuk meg, akkor a program válaszként a Hello, Pista! szöveget írja ki, azaz a szóköz utáni karakterek nem kerülnek be a nev változóba.

Ennek kiküszöbölésére használhatjuk a getline(cin, nev) utasítást az alábbi módon:

#include <iostream>
#include <string>

using namespace std;

int main()
{
string nev;

cout << "Ird be a neved: ";
getline(cin, nev);

cout << "Hello, " << nev << "!" << endl;

return 0;
}



Ekkor már a teljes beírt szöveg (szóközökkel együtt) fog megjelenni a képernyőn.

Előző oldal Kapitány
Vélemények a műről (eddig 1 db)