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

c++ przerwanie pętli while, słowem

Object Storage Arubacloud
0 głosów
1,230 wizyt
pytanie zadane 14 sierpnia 2019 w C i C++ przez kukulim Mądrala (6,440 p.)
#include <iostream>
#include <cstring>

using namespace std;
char slowo[20];

int licznik=0;

int main()
{
    cout << "Podaj slowa(kiedy skonczysz napisz gotowe)" << endl;
    cin>>slowo;
    cout<<slowo;
    while (slowo[20] ='gotowe')
    {
    cin>>slowo;
    cout<<slowo;
    licznik++;
    }
    cout<<slowo<<licznik;

    return 0;
}


jak zrobić żeby po wpisaniu słowa "gotowe" pętla się przerwała.

komentarz 14 sierpnia 2019 przez MsMaciek123 Pasjonat (24,760 p.)
Może jeszcze raz przejrzyj swój kurs...

2 odpowiedzi

+1 głos
odpowiedź 14 sierpnia 2019 przez MsMaciek123 Pasjonat (24,760 p.)
edycja 14 sierpnia 2019 przez MsMaciek123
string var;

do
{
cin>>var:
} while(var!="gotowe")

Pętla do-while przyjmuje cały czas dane do zapisu do zmiennej var, dopóki var jest różny od "gotowe"

 

Co do twojego kodu

1. Dlaczego nie używasz stringa?

2. (slowo[20] ='gotowe')

char slowo[20];

Robisz coś bardzo nie bezpiecznego! Wychodzisz po za index w tablicy! Alokowałeś 20 elementów, a odwołujesz się do 20, gdy elementy są indexowane od 0 do 19!!!

3. Dlaczego porównujesz znak (char) z napisem "gotowe"

(slowo[20] = 'gotowe')

4. Znak porównywania masz nie prawidłowy

a = 3;

if(a==3)

W przypadku przypisywania wartości używamy jednego '=', w przypadku porównywania dwóch '=='

 

Poprawny kod:

#include <iostream>
#include <cstring>
 
using namespace std;
 
int main()
{
    int i;
    string word[20];
    cout << "Podaj slowa(kiedy skonczysz napisz gotowe)" << endl;
    do
    {
    cin>>word[i];
    cout<<word[i];
    i++;
    } while (word[i] == "gotowe")
    for(int j=0; j<=19; j++) {
    cout<<word[i]<<" "<<i<<"\n";}
    return 0;
}

Edit: No I posłuchaj też tego pana podemną :)

+1 głos
odpowiedź 14 sierpnia 2019 przez DragonCoder Nałogowiec (36,500 p.)
#include <iostream>

int main()
{
int licznik = 0;
std::string slowo;
    std::cout << "Podaj slowa(kiedy skonczysz napisz gotowe)\n";
    do {
        std::cin>>slowo;
        std::cout<<slowo;
        licznik++;
    } while (slowo != "gotowe");

    std::cout<<slowo << licznik;

    return 0;
}

1. Nie uzywaj zmiennych globalnych, gdy ich nie potrzebujesz (takie wypadki to wyjatki)

2. nie uzywj przestrzenii nazw

3. bledem bylo podejscie.

  • zadeklarowales tablice znakow, co nie jest tym samym co jedno slowo.
  • w petli porownywales tylko i wylacznie 20 znak w tablicy (warto dodac, ze tablice liczy sie od zera )
  • petl do while, powoduje, ze petla ta powtorzy sie conajmiej jeden raz, wiec nie trzeba pisac tych 2 linijek poczatkowych.

4. jezei chcesz miec kilka slow, to uzyj moze vectora

std::vector<std::string> strVec;
strVec.push_back("Monday");
strVec.push_back("Tuesday");

jezeli zalezy Ci, zeby pozniej je odczytac

Podobne pytania

0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 25 lipca 2020 w Java przez Programmingc100 Bywalec (2,620 p.)
0 głosów
1 odpowiedź 462 wizyt
0 głosów
1 odpowiedź 1,611 wizyt

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...