E-mail: albescudavidefrancesco@gmail.com
Web: www.pbinfo.ro
  Citirea Unui Sir de Caractere
  • Se poate folosi operatorul >> de extractie din stream:

    cin >> s;

  • in acest mod, datorita specificului operatorului >> nu se pot citi siruri care contin spatii – se vor citi caracterele pana la primul spatiu, fara acesta.
  • Pentru a citi siruri care contin spatii, putem folosi metoda getline a obiectului cin sau alt obiect de tip istream:

    istream& getline (char* s, streamsize n );



  • Se vor citi in sirul s caracterele din stream-ul de intrare (de la tastatura) pana la aparitia caracterului sfarsit de linie '\n', dar nu mai mult de n-1 caractere. Caracterul '\n' nu va fi adaugat la sirul s, dar va fi extras din stream. De exemplu:

    cin.getline(s , 11);



  • Am putea spune ca getline citeste toata linia si sare peste ENTER. Iata un exemplu complet:

    #include < iostream >
    using namespace std;
    int main(){
         char nume1[31], nume2[31];
         cout << "Cum te cheama? (nume, prenume) ";
         cin.getline(nume1, 31);
         cout << "Cum il cheama pe prietenule tau? ";
         cin.getline(nume2 , 31);
         cout << "Te numesti " << nume1 << endl;
         cout << "Esti prieten cu " << nume2 << endl;
         return 0;
    }

  • O alta modalitate de citire a unui sir care poate contine spatii este folosirea metodei get a obiectului istream, pe care nu o mai prezentam aici.