ahoj jak při psani zanku(cin) udelat aby se znaky nezobrazovaly a zobrazily se až po vypsaní..díky
Fórum › C / C++
Znaky
Jestli jsem pochopil správně, že se má jednat o chování stejné jako při psaní hesla, tak to bude chtít jiný přístup než přes std::cin. Bude nutné to udělat systémově závislé.
std::cin nemá (bohužel) přímo žádné prostředky, kterými by bylo možné zjistit, odkud to vlastně ve skutečnosti čte. Může to být klávesnice, std::cout jiného programu po přesměrování (tedy roura), pojmenovaná roura, socket, přímo soubor, textový terminál, grafický terminál.
Bude nutné využít funkcionality závislé na konkrétním os nebo najít nějakou multiplatformní knihovnu, která umí odchytávat klávesy.
Alebo to mozes spravit pomocou getch(); a za kazdym nacitanym znakom zavolat system("cls");
#include <conio.h> //pre getch
#include <string.h> //pre strcat a cpy
char getinput(int chars){
char output[128], helpme[2];
strcpy(output, "");
while(chars!= 0){
helpme= getch();
strcat(output, helpme);
system("cls");
chars--;
}
return output;
}
nie som si ale celkom isty ci to bude fungovat :smile1:
system("cls") bude někdy fungovat na windows. Obecně určitě ne.
Problém toho getch je taky v tom, že to nejspíš dostane až ve chvíli, kdy uživatel odentruje celý řádek.
I kdyby to fungovalo, tak to cls může být natolik pomalé, že ten napsaný znak stejně bude (chvilku) vidět.
A pořád to neřeší případ, kdy standardní vstup programu nebude klávesnice.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Znaky v konzoli — založil code
Znaky v podmínce — založil billtimm
České znaky — založil CommanderZ
Slovenske znaky — založil igor
Moderátoři diskuze