nie wypisuje danej

0
 #include <iostream>

using namespace std;

int main()
{
    struct animal {char imie[15], gatunek[15], wielkosc[4], kolor[15]; int wiek, waga;};
    animal lista[5];

    for(int i=0;i<2;i++)
    {
            cout<<"Podaj informacje o "<<i+1<<" zwierzeciu.\n";    
            cout<<"Gatunek: ";                                        
            cin>>lista[i].gatunek;                     //Wprowadzanie danych do tabeli
            cout<<"Imie: ";
            cin>>lista[i].imie;
            cout<<"Wiek: ";
            cin>>lista[i].wiek;
            cout<<"Kolor: ";
            cin>>lista[i].kolor;
            cout<<"Wielkosc: ";
            cin>>lista[i].wielkosc;
            cout<<"Waga: ";
            cin>>lista[i].waga;
    }

    for(int i=0;i<2;i++)
    {

            cout<<lista[i].gatunek;
            cout.width(15);
            cout<<lista[i].imie; //wypisanie w postaci tabelarycznej
            cout.width(10); 
            cout<<lista[i].wiek;
            cout.width(15);
            cout<<lista[i].kolor;
            cout.width(10);
            cout<<lista[i].wielkosc;
            cout.width(10);
            cout<<lista[i].waga<<endl;
    }

system("pause");
return 0;
}

program ten nie wypisuje koloru, dlaczego? I przy okazji jak mam ustawić cout.width aby ładnie mi wyświetlało w kolumnach? ;d

0

Działa poprawnie, nawet kolumny są tak jak chciałeś.

0

to najwyraźniej u mnie jest coś nie tak na kompie :P

0

co do tego kodu jak można zrobić aby wpisując wielkość do wyboru było tylko duży albo mały a przy wpisaniu czegoś innego wyświetlał komunikat że źle wpisano i żeby wpisać jeszcze raz czy coś w tym stylu ;)

0
#include <iostream>

enum {pusty, duzy, maly} wielkosc;

int main()
{
    using namespace std;
    while(!wielkosc)
    {
        int rozmiar;
        cin >> rozmiar;
            switch(rozmiar)
            {
            case 1 : wielkosc = duzy;
                break;
            case 2 : wielkosc = maly;
                break;
            default : cout << "zly rozmiar\n";
            }
    }
    cout << "\n\nwyszlo!";

    return 0;
}
0

Dzięki, trochę kombinowałem ale nie wiem jak mogę to wtopić w mój kod, żeby działało. zbyt zaawansowane jak dla mnie :D

0

nic nadzwyczajnego, tworzymy obiekt typu wyliczeniowego, z racji, że jest on globalny, to jest zainicjalizowany przez zero, czyli wielkosc == pusty na poczatku.
a w typie wyliczeniowym mamy pusty == 0, duzy == 1, maly == 2
Teraz while(!wielkosc) == while(!0) == while(1) czyli pętla nieskończona
wczytujemy rozmiar
switch to zbiór instrukcji warunkowych if w jednym miejscu
sprawdza czy ktos wcisnal 1, jeżeli rozmiar == 1 to wielkosc = duzy
jeżeli ktoś wcisnal 2, to rozmiar == 2 i wielkosc = maly
w każdym innym razie nie dochodzi do zmiany wielkosci, a to oznacza, że pętla będzie się wykonywać w nieskończoność, aż do momentu wpisania jednej z tych dwóch wartości.

0

jak zrobić aby wielkosc ze struktury została zliczana gdy wystąpi duży? Chodzi mi o to ile razy wystąpił wyraz duzy :p

0

zadeklaruj wielkosc w strukturze jako statyczną i zwiększaj za każdym razem, kiedy wartość w któregoś obiektu tej struktury jest równy duży

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0