Wczytywanie wszystkich znaków, łącznie z enterem

Wczytywanie wszystkich znaków, łącznie z enterem
KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 127
0

Witam.
Szukam opcji by program wczytywał wszystkie znaki włącznie z Enterem.

Rozwiazuje zadanie : http://pl.spoj.com/problems/JSPACE/

I nie działa mi tylko, gdy wcisnę Enter, bo po prostu kończy wczytywanie znaków.

Więc moje pytanie brzmi czego użyć, by to wczytywanie nie kończył się na enterze ?

Kopiuj
#include <iostream>

using namespace std;

int main()
{
    string SMS;
    int i =0;
    getline( cin, SMS);
    while (i<SMS.length()){
        if (SMS[i] == ' '){
        while(SMS[i] == ' ')
            i++;
            if (SMS[i] >= 'a'  && SMS[i] <= 'z'){
                cout << (char)(SMS[i] - 32);

            }
            else {
            cout << (char)SMS[i];

            }
        }

        else {
                cout << SMS[i];

    }
    i++;
    }
    return 0;
}

 
szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0

Możesz jakoś tak:

Kopiuj
while (getline(cin, SMS))

i potem sobie przechodzisz po znakach w konkretnych SMSach

SI
  • Rejestracja: dni
  • Ostatnio: dni
0

Albo też wczytuje do char-a znak po znaku, nowa linia też się do niego wczyta

Kopiuj
#include <iostream>

using namespace std;

int main()
{
    char znak,pop='a';
    while(!(cin.get(znak)).eof())
    {
        if (znak==' ') pop=' ';
        else
        {
                if (pop==' ') if (znak>='a'&&znak<='z') znak=znak-32;
                pop=znak;
                cout << znak;
        }
    }
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.