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
[b]pioki[/b] + 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.
Offline
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!
Offline
[url]https://www.youtube.com/watch?v=y6GOYVTVvqo[/url]
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ę...
Offline
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)
Offline
@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)
Offline
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);
Offline
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
[b]sysek[/b] 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
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00007 | SET NAMES latin2 |
0.00076 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.7.187' WHERE u.id=1 |
0.00106 | UPDATE punbb_online SET logged=1732962268 WHERE ident='3.145.7.187' |
0.00033 | SELECT * FROM punbb_online WHERE logged<1732961968 |
0.00044 | SELECT topic_id FROM punbb_posts WHERE id=273224 |
0.00096 | SELECT id FROM punbb_posts WHERE topic_id=26216 ORDER BY posted |
0.00043 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26216 AND t.moved_to IS NULL |
0.00032 | SELECT search_for, replace_with FROM punbb_censoring |
0.00343 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26216 ORDER BY p.id LIMIT 0,25 |
0.00630 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26216 |
Total query time: 0.01422 s |