Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Czy ktoś może mi powiedzieć, dla czego pozycja 1 nie wyświetla się prawidłowo tzn dodatkowo ładuje do niej else. A pozycja 2 działa poprawnie.
#include <iostream> using namespace std; string PIN, login; int wybor; int main() { cout << "Witaj w naszym banku." <<endl; cout<<"Podaj login: "; cin >> login ; cout <<"Podaj PIN: "; cin >> PIN ; if ((PIN == "123" ) && (login == "admin" )) { cout << "Zalogowałeś się poprawnie. " <<endl<<endl; } else { cout<<"Błędny login lub hasło spróbuj jeszcze raz."<<endl<<endl; } cout << "Co chcesz zrobić? "<< endl << endl; cout << "1- Wpłacić pieniądze." << endl; cout << "2- Wypłacić pieniące." << endl; cout << "Twój wybór: "; cin >> wybor; switch (wybor) { case 1: cout << "" <<endl; break; default: break; } switch (wybor) { case 2: cout << "" <<endl; break; default: break; } if (wybor == 1) { cout <<" Wpłata tylko w okienku na poczcie"<<endl; } if (wybor == 2) { cout<<" Nie masz nic na koncie!"<<endl; } else { cout << "Błędny wybór spróbuj jeszcze raz system wylogował cię automatycznie."<<endl; } return 0; }
Offline
923
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:55:38)
Offline
Czy ktoś może mi powiedzieć, dla czego instrukcja wykonuje się chociaż są błędne dane logowania?
#include <iostream> using namespace std; string login, PIN ; int wybor; int main() { while ((login!="admin")&&(PIN!="123")){ cout << "Witaj w naszym banku." <<endl; cout<<"Podaj login: "; cin >> login ; cout <<"Podaj PIN: "; cin >> PIN ; if ((login == "admin" ) && (PIN == "123" )) { cout << "Zalogowałeś się poprawnie. " <<endl<<endl; } else { cout << "Błędny login lub hasło spróbuj jeszcze raz."<<endl<<endl; } } // Niezależnie od poprawnego logowanie lub nie, wykonuje się ta instrukcja. cout << "Co chcesz zrobić? "<< endl << endl; cout << "1- Wpłacić pieniądze." << endl; cout << "2- Wypłacić pieniądze." << endl; cout << "Twój wybór: "; cin >> wybor; switch (wybor) { case 1: cout << "" <<endl; break; case 2: cout << "" <<endl; break; default:cout << "Błędny wybór spróbuj jeszcze raz system wylogował cię automatycznie."<<endl; break; } if (wybor == 1) { cout <<" Wpłata tylko w okienku na poczcie"<<endl; } if (wybor == 2) { cout<<" Nie masz nic na koncie!"<<endl; } return 0; }
Ostatnio edytowany przez tajwan (2014-08-05 00:34:59)
Offline
Zły warunek w pętli while - wykonaj pętlę jeżeli login jest niepoprawny i jednocześnie hasło jest niepoprawne. Czyli jeśli podasz przykładowo prawidłowy login i nieprawidłowe hasło to program opuści pętlę.
Zamiast && powinieneś użyć ||.
@uzytkownikubunt
Jaki zysk w takim programie z używania zmiennych lokalnych zamiast globalnych?
Offline
pioki + Fajnie wytłumaczyłeś.
Offline
Kompilator nie zgłasza błędów, ale program nie odlicza stoi w miejscu.
#include <iostream> #include <unistd.h> using namespace std; int main() { cout <<"Zaczynamy odliczanie! "; for (int i= 15; i>=0 ; i--) { sleep (1000); cout << i <<endl; } cout <<"Jebut"; return 0; }
Offline
Nie stoi w miejscu.
Odczekałeś 1000 sekund?
man 3 sleep
i więcej nie zawracaj głowy tylko dlatego że masz awersję do czytania dokumentacji - forum dug to nie interfejs do mana.
Online
Według kursu czas odliczał się w milisekundach.
Offline
To podaj link do tego kursu, żeby broń Boże nikt z niego nie próbował korzystać. A następnym razem zanim zaczniesz płakać zainstaluj sobie mana i manpages-dev (czy jak to się tam nazywa w Twoim distro) i zacznij używać. Uwierz mi, to naprawdę nie boli!
Online
https://www.youtube.com/watch?v=y6GOYVTVvqo
Clear też nie działa
term environment variable not set
#include <iostream> #include <unistd.h> #include <cstdlib> using namespace std; int main() { cout <<"Zaczynamy odliczanie! "<<endl; for (int i= 15; i>=0 ; i--) { sleep (1); system ("clear"); cout << i <<endl; } cout <<"Jebut"; return 0; }
Offline
Tak działa. W Qt piszę
Offline
e... że co?
Co to co napisałeś ma wspólnego z Qt? Objaśnij mi to jakoś bo nie do końca pojmuję...
Online
Nie wiem jak to fachowo napisać Qt ma własną konsolę, która mi się mi się otwiera i w niej to nie działa. Ale pytałeś się czy działa
clear
w konsoli tak działa wyczyściło konsolę. Otworzyłem program w konsoli systemowej i działa. PS jeszcze nie zdążyłem poprawić że działa.
Offline
@ethanak: na 100% chodzi o Qt Creatora
@tajwan: clear do czyszczenia ekranu w aplikacji się nie nadaje, bo tylko przesuwa "Enterem" tekst w teminalu(jak przewiniesz w górę, to zobaczysz to co wcześniej printowałeś), ja kiedyś korzystałem z jakiejś funkcji znalezionej w sieci, ale teraz nie mam tegoż pod ręką
Offline
@thomsson: ja dokładnie wiem o co chodzi, ale od programistego wymaga się precyzyjnych wypowiedzi. Przy okazji: nie wiem co ma wspólnego edytor w którym się pisze pięć linijek w C++ z kodem wynikowym skompilowanym przez gcc - czyżby ten sam kod napisany w Joe, Emacsie, Vimie, Nedicie czy Qtaśnym Kreatorze za każdym razem kompilowany był inaczej???
BTW nie myl czyszczenia ekranu z czyszczeniem historii terminala - to co robi clear do wyczyszczenia terminala absolutnie wystarczy.
@tajwan: podaj co powie which clear
Ostatnio edytowany przez ethanak (2014-08-13 15:11:57)
Online
@ethanak: Luz, rozumiem (mnie też niezmiernie irytuje mieszanie pojęć, co jest niestety praktykowane wszędzie, ot przykład jak moja nauczycielka z uporem maniaka nazywa Dev-C++ kompilatorem...)
A co do drugiej rzeczy, to miałem na myśli wyczyszczenie okna terminala (nie historii wydawanych poleceń), ale w sumie nie ma po co wyciągać tematu bo clear jest wystarczające
Offline
Clear wysyła na terminal sekwencje ANSII \e[2J
Polecam: http://www.termsys.demon.co.uk/vtansi.htm
Poza tym nie polecenie a aplikacja clear jest częścią pakietu ncurses i wymaga ustawionej zmiennej środowiskowej TERM.
Offline
A tak lekko offtopicznie - nie widziałem jeszcze terminala, który nie rozumiałby podstawowych sekwencji ANSI.
A proste polecenie "clear" ciągnie za sobą ncurses ze wszystkimi przyległościami...
@milyges: szybszy byłeś :)
Ale nie ncurses a ncurses-bin
Ostatnio edytowany przez ethanak (2014-08-13 15:27:17)
Online
To chyba teraz się dogadamy program dla tego nie działał prawidłowo, gdyż Qt otworzył go xterm i w nim pojawiał się błąd
term environment variable not set.
Kiedy ten sam program uruchomiłem w konsoli systemowej wszystko dobrze dzialało.
Offline
no to zamiast się bawić w system() wyślij po prostu sekwencję do terminala.
moja propozycja:
clear-to-eol
print (bez znaku nowej linii)
powrót karetki (czyli '\r')
Ewentualnie możesz pominąć clear-to-eol, zamiast tego wypisywać stringi o stałej długości.
A, i jeszcze nie zapomnij o flush!
Nie chce mi się teraz sprawdzać, ale coś takiego by zadziałało pewnie:
printf("%03d\r",i);fflush(stdout);
Online
Czy dobrze myślę, z kalkulatorem?
opcja 1
#include <iostream> using namespace std; int skladnik1,skladnik2; //dodawanie char wybor; int main() { cout << "Wybier rodzaj dzaiłania" << endl; cout << "1- Dodawanie" << endl; cout << "2- Odejmowanie" << endl; cout << "3- Mnożenie" << endl; cout << "4- Dzielenie" << endl; cout <<"Twój wybór: "; cin >>wybor; switch (wybor) { case 1: cout << "Podaj pierwszy składanik"; cin>> skladnik1; // dodawanie cout << "Podarj drugi składnik"; cin>> skladnik2; cout << skladnik1 + skladnik2; break; default: break; } return 0; }
Opcja 2
#include <iostream> using namespace std; int skladnik1,skladnik2; //dodawanie char wybor; int main() { cout << "Wybier rodzaj dzaiłania" << endl; cout << "1- Dodawanie" << endl; cout << "2- Odejmowanie" << endl; cout << "3- Mnożenie" << endl; cout << "4- Dzielenie" << endl; cout <<"Twój wybór: "; cin >>wybor; switch (wybor) { case 1: cout <<""; break; default: break; } if (wybor == 1) { cout << "Podaj pierwszy składanik"; cin>> skladnik1; // dodawanie cout << "Podarj drugi składnik"; cin>> skladnik2; cout << skladnik1 + skladnik2; } return 0; }
Offline
sysek Gdzieś jest błąd którego szukam bo po kompilacji program nie działa prawidłowo z wybieraniem. Jak wybiorę dodawanie, to nie pobiera danych.
Offline
929
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:55:46)
Offline