Inhämta strängar

Om du ska inhämta en sträng från användaren kan det göras på följande sätt om det bara rör sig om ett enstaka ord:

cin>>strängnamn;

Ovanstående fungerar inte för fraser (flera ord) eftersom cin uppfattar att inmatningen är slut när den stöter på ett mellanslag / blanktecken. För fraser skriver du i stället så här.

getline(cin,strängnamn);

Vi kan nu testa hur detta fungerar med följande kod:

Exempel 6.1

#include <iostream>
#include <string>

using namespace std;

int main()
{
cout<<"Ange ditt fullständiga namn"<<endl;
string namn;
getline(cin,namn);
cout<<"Du heter "<<namn<<endl;
return 0;
}

Använder du Borland C++ 5.0 så måste du även ange vilket tecken som avslutar inmatningen när du använder getline. Du ska alltså då skriva så här:
getline(cin, strängnamn, '\n');

Använder du Visual C++ 6.0 så rymmer den en bugg rörande getline som finns kvar även om du installerat servicepack 5. Du kan själv åtgärda buggen genom att editera string-filen enligt Microsofts anvisningar. Känner du dig osäker på hur du ska göra så kan du erhålla en korrekt string-fil från din lärare.