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

Program który drukuje imię i ilość lat

Object Storage Arubacloud
0 głosów
178 wizyt
pytanie zadane 13 września 2020 w C i C++ przez Mateusz Wilk Nowicjusz (160 p.)

Cześć, napisałem program w c++który ma drukować imię i ilość lat, ale potem chciałem żeby lat pisało -1

i coś nie pykło (specjalnie napisałem 26 Mareczek żeby było to -1, a zamiast -1 drukuje się 0)

// Wczytuje imię i wiek (2 wersja programu)
#include "std_lib_facilities.h"
int main()
{
	cout << "Podaj imie i wiek.\n";
	string first_name = "???"; // Zmienna łańcuchowa
	                           // (Oznacza imię nieznane)
	int age = -1;              // Zmienna całkowitoliczbowa (-1 oznacza "wiek nieznany")
	cin >> first_name >> age;  // Wczytuje łańcuch i liczbę całkowitą
	cout << "Witaj, " << first_name << " (wiek " << age << ")\n";
}

4 odpowiedzi

0 głosów
odpowiedź 13 września 2020 przez Michałełe Nałogowiec (25,600 p.)
Jeśli dobrze rozumiem, to jeśli będzie próba wpisania jako drugiego imienia to ma wypisać -1 - możesz np. dodać if'a, w którym sprawdzasz czy age == 0. Minus to ma taki, że jeśli będzie wpisany pojedynczy char do tego int'a, to znajdzie się tam kod ascii tegoż char'a, także musisz pokombinować dalej - sprawdź jaki jest to dokładnie znak.
0 głosów
odpowiedź 13 września 2020 przez Restej Dyskutant (8,690 p.)
C++ uznaję, że podana w incie wartość to nieskończoność zatem zmienia podaną wartość na 0 - false, gdy jest tam liczba większa wtedy występuje wartość true, hm sam się dopiero uczę i nie chce nikogo wprowadzić w błąd dlatego prosiłbym o poprawienie mnie w razie co starszych stażem kolegów, lecz dlaczego nie zrobisz właśnie tego w taki sposób w jaki dzieje się to teraz czyli by 0 sygnalizowało że mamy doczynienia z wartością nieznaną (fałsz), a gdy jest tam wartość znana - poprawna wtedy true. Możesz ewentualnie zrobić age = 0-1 i wtedy to -1 się wyświetli ale wydaję mi się że ta metoda zero-jedynkowa jest bardziej poprawna
0 głosów
odpowiedź 13 września 2020 przez Whiskey_Taster Pasjonat (15,610 p.)
Sam się uczę, ale wydaje mi się, że rozwiązanie znam. Otóż >> przekazuje tylko pierwszy "wyraz", w tym wypadku 26 jest odczytywane jako łańcuch i wędruje do Twojej zmiennej string. A następnie w buforze pozostaje "Mareczek" i... wskakuje do int'a :)

Aby wczytywać cały wiersz do string użyj: getline(cin, nazwa_stringa)
0 głosów
odpowiedź 14 września 2020 przez Mateusz Wilk Nowicjusz (160 p.)
Jestem początkującym, dopiero stawiam nowe kroki i w książce z której się uczę napisałem programik który podaje Witaj, "imię" (lat "liczba")

cout << "Witaj, " << first_name << "(wiek " << age << ")/n";

first_name to zmienna string

age to zmienna int

Ale potem w książce pisało że jeśli wpiszemynp.

16 Mareczek to program wydrukuje Witaj, 16! (lat 0)

No i potem chcieliśmy zrobić tak żeby nie pisało lat 0, tylką jakąś typową liczbę którą ustalimy wcześniej. I wyszedł ten o to programik wyżej. Wie ktoś dlaczego to nie pykło?

Podobne pytania

+1 głos
0 odpowiedzi 346 wizyt
0 głosów
1 odpowiedź 568 wizyt
0 głosów
6 odpowiedzi 2,589 wizyt

92,539 zapytań

141,382 odpowiedzi

319,481 komentarzy

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

...