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

cin bez wyświetlania na ekranie (c++)

VPS Starter Arubacloud
0 głosów
1,219 wizyt
pytanie zadane 16 listopada 2015 w C i C++ przez maciek061 Gaduła (4,490 p.)
Zna ktoś funkcję (jeśli taka w ogóle istnieje), która zapisuje pojedynczy znak z klawiatury bez wyświetlania go na ekranie?

3 odpowiedzi

+1 głos
odpowiedź 16 listopada 2015 przez furas Maniak (53,800 p.)
Z tego co się orientuje to wyświetlaniem wciśniętych klawiszy zajmuje się konsola, w której uruchamiasz program. Ten efent nazywa się `echo`. Jeśli wyłączysz w konsoli echo to nie będzie znaków wyświetlać

---

http://stackoverflow.com/questions/6899025/hide-user-input-on-password-prompt
komentarz 16 listopada 2015 przez maciek061 Gaduła (4,490 p.)
Nie jestem pewien, może się mylę, ale chyba pomyliłeś języki programowania :)
komentarz 16 listopada 2015 przez furas Maniak (53,800 p.)
dlaczego myślisz, że pomyliłem języki ? efekt `echo` jest niezależny od języka.
komentarz 16 listopada 2015 przez maciek061 Gaduła (4,490 p.)
Myślałem, że chodzi ci o "@echo off" na początku kodu, bo takiego czegoś nie ma w c++. A można wyłączyć echo w konsoli? Jeśli tak to jak?
komentarz 16 listopada 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)

@furas daję ci yes bo w twoim linku jest też pokazane jak to zrobić na linuksie :)

komentarz 16 listopada 2015 przez furas Maniak (53,800 p.)
edycja 16 listopada 2015 przez furas

"efekt echo" daje się programowo wyłączyć tak jak to podają przykłady z podanego linku.

Nie wiem czy w Windows jest gotowa funkcja do wyłączaniać "efektu echo" w konsoli (lub w batch) ale może dało by się zrobić program na podstawie przykładów z linku.

W Linux powinna być taka możliwość bez dodatkowych narzędzi.

EDIT: Linux 

# wyłączenie efektu echo wprost w konsoli

stty -echo 

# przywrócenie efektu echo (trzeba wpisywać w ciemno bo konsola nic nie wyswietla ;)

stty echo

 

0 głosów
odpowiedź 16 listopada 2015 przez emSon Stary wyjadacz (10,480 p.)
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    char znak;
    znak = getch();
}

 

komentarz 16 listopada 2015 przez emSon Stary wyjadacz (10,480 p.)
maciek, zedytowałem odpowiedź. tamta pokazywała znak na ekranie i wymagała zaakceptowania entera, ta już tylko łapie znak.
komentarz 16 listopada 2015 przez Michał628496 Pasjonat (17,340 p.)
lepiej użyć _getch()
komentarz 16 listopada 2015 przez maciek061 Gaduła (4,490 p.)
Rzeczywiście, dzięki za pomoc :)
komentarz 16 listopada 2015 przez emSon Stary wyjadacz (10,480 p.)
W sumie tak, getch() jest przestarzała.
komentarz 16 listopada 2015 przez Dorion300 Szeryf (90,250 p.)
getch() to jest to samo co _getch().....
komentarz 16 listopada 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
Najlepiej to getch w ogóle nie używac, bo nie działa na Linuksach.
komentarz 16 listopada 2015 przez emSon Stary wyjadacz (10,480 p.)
aleś sie uczepił tego linuksa. autor nic nie wspomina o tym, że na takim systemie pracuje dlatego podałem mu taki sposób.

a tak z ciekawości, jaka jest inna funkcja mająca taką funkcjonalność?
komentarz 16 listopada 2015 przez Eryk Andrzejewski Mędrzec (164,260 p.)
No uczepiłem się Linuksa i chyba lepiej, żeby program był multiplatformowy, trafi do szerszego grona odbiorców, w końcu srajdołs to nie jedyny OS :)
komentarz 16 listopada 2015 przez maciek061 Gaduła (4,490 p.)
To jaką masz funkcje zamiast getchara?
–1 głos
odpowiedź 16 listopada 2015 przez Sewek Nowicjusz (190 p.)
Nie wiem czy dokladnie o to chodzi ale żeby zapisać zmienna wystarczy napisać poprostu cin >> zmienna; Koniec. :) Nie musisz jej wypisywać na ekranie za pomocą Cout
komentarz 16 listopada 2015 przez maciek061 Gaduła (4,490 p.)
Nie zkumałeś pytania. Jak coś zapisujesz do zmiennej za pomocą cin to widać na ekranie to, co piszesz. A jak użyjesz funkcji getch() to nie widać :)
komentarz 16 listopada 2015 przez Sewek Nowicjusz (190 p.)
Rzeczywiście. Przepraszam! :)

 

Pozdrawiam!

Podobne pytania

0 głosów
1 odpowiedź 964 wizyt
pytanie zadane 12 maja 2020 w C i C++ przez Maciex0n Nowicjusz (160 p.)
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 20 lipca 2018 w C i C++ przez Hinzeq Użytkownik (860 p.)
0 głosów
2 odpowiedzi 441 wizyt

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...