• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed getline od stringa coś nie działa

Object Storage Arubacloud
0 głosów
2,103 wizyt
pytanie zadane 14 września 2015 w C i C++ przez niezalogowany
zamknięte 15 września 2015
cout << "Jak chcesz byc nazywany: ";
            string *imie = new string;
            getline(cin,*imie);//pobiera wszystkie znaki
            if(*imie == "")
            {
                cout << "Panie, nie mozesz sie tak nazywac." << endl;
                cout << "Musisz jakos sie nazwac: ";
                getline(cin,*imie);
            }

od razu wykonuje się if, ktoś ma pomysł?

@edit mój błąd, nie pętla tylko if

@edit problem rozwiązany w inny sposób zamykam temat

komentarz zamknięcia: poradziłem sobie z tym problemem, dziękuję wszystkim za pomoc

7 odpowiedzi

+1 głos
odpowiedź 15 września 2015 przez Włóczykij Użytkownik (750 p.)

Przed pobraniem lini poleceniem "getline" wyczyść bufor poleceniem

cin.sync()

 

0 głosów
odpowiedź 14 września 2015 przez Patrycjerz Mędrzec (192,320 p.)
Gdzie ty tu masz pętlę?
komentarz 14 września 2015 przez niezalogowany
Mój błąd, nie pętla tylko if.
0 głosów
odpowiedź 14 września 2015 przez dolores Nowicjusz (220 p.)
Tu nie ma pętli, tylko instrukcja warunkowa if :).

I wykonuje się od razu, gdy string imie jest pusty.

Po prostu,gdy uruchomisz program, nie naciskaj entera, tylko wprowadź jakiś ciąg znaków.
komentarz 15 września 2015 przez niezalogowany
Ja nawet nie zdarze nic nacisnąć, próbowałem jeszcze przed if'em dać jakiś napis do imię ale to też nie działa
komentarz 15 września 2015 przez dolores Nowicjusz (220 p.)
U mnie działa.

A możesz pokazać cały kod?
komentarz 15 września 2015 przez niezalogowany
tutaj występuje błąd, nigdzie indziej. Nie widzę sensu podawania całego kodu.
0 głosów
odpowiedź 15 września 2015 przez baszmest Gaduła (3,080 p.)
W code:blocks wszystko jest ok. Kod jest poprawny.
komentarz 15 września 2015 przez niezalogowany
tylko nie wiem czemu nadal mi nie działa
0 głosów
odpowiedź 15 września 2015 przez Benek Szeryf (91,110 p.)
edycja 15 września 2015 przez Benek

W jakim celu używasz operatora new, skoro chcesz stworzyć tylko jedną zmienną typu string?

komentarz 15 września 2015 przez criss Mędrzec (172,590 p.)
Pewnie w takim w jakim istnieje dynamiczne zarządzanie pamięcią. Ilość nie ma tu nic do rzeczy.
komentarz 15 września 2015 przez Benek Szeryf (91,110 p.)
Nie ma, ale jest to nienajlepsze rozwiązanie, trzeba pamiętać o zwolnieniu pamięci. W przypadku deklaracji pojedynczej zmiennej ten problem odpada.
0 głosów
odpowiedź 15 września 2015 przez Dorion300 Szeryf (90,250 p.)
Warto dodać że jak zostawimy Getline pusty to dalej jest kontyunowany.

czyli jak naciśniemy enter bez liter to dalej jesteśmy w "getline".

Jaki masz kompilator i wersję C++?
komentarz 15 września 2015 przez niezalogowany
code::blocks a kompilator był dołączony
0 głosów
odpowiedź 15 września 2015 przez niezalogowany

Poprawiłem to na takie coś
 

 cout << "Jak chcesz byc nazywany: ";
            string *imie = new string;
            *imie = "jesc";
            int dlug = imie->length();
            getline(cin,*imie);//pobiera wszystkie znaki
            while(dlug == 0)
            {
                cout << "Panie, nie mozesz sie tak nazywac." << endl;
                cout << "Musisz jakos sie nazwac: ";
                getline(cin,*imie);
            }

Teraz jest tak że omija całość od getline do }

Podobne pytania

0 głosów
0 odpowiedzi 392 wizyt
pytanie zadane 19 kwietnia 2020 w C i C++ przez CyprianKoruba Początkujący (290 p.)
0 głosów
1 odpowiedź 1,071 wizyt
pytanie zadane 3 stycznia 2016 w C i C++ przez agre Użytkownik (550 p.)
0 głosów
2 odpowiedzi 371 wizyt
pytanie zadane 12 grudnia 2019 w C i C++ przez Ganci Użytkownik (670 p.)

92,617 zapytań

141,467 odpowiedzi

319,783 komentarzy

61,999 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...