[C++] Ograniczyć wpisywanie..

0

Hello!! Jak ograniczyć użytkownika o wpisywanie znaków?? Obojętnie jaką funkcję użyję.. np


    cout << "Podaj imię: ";
    cin >> imie;
   

a na ekranie :
Podaj imie: ...._ // i tylko pięć znaków można wpisać,
// program się zatrzymuje po większej ilosci
// znaków i czeka na klawisz ENTER

THX za wszelką pomoc...

0

pobieraj znaki getchem w pętlia potem wywalaj je na ekran putchem, po 5 przestanie je wywalać na ekran i czekaj na enter

0

No fakt to też rozwiązanie a czy nie ma jakiejś innej funkcji na too??

0

z tego co mi wiadomo to nie, musialbys sobie wlasna klase robic

0

Nie no to też dobre nie pomyślałem.

A może mi ktoś wyjaśnic jakie zastosowania ma typ wyliczeniowy enum na przykładach nie muszą być kody programów tylko opisowo..

0

Siemka !!!
Mam dalej problemik z tym pobieraniem. Czy można wczytywać znaki do zmiennej znakowej a naztępnie kopiować je do zmiennej łańcuchowej?? Jeśli tak to jak mam to zrobić??

 char znak, imie[12];

 znak=getch(); cout << znak; // to powoduje wczytanie do zmiennej znakowej
                                            // i wyswietlenie wpisanego znaku przez cout
                                            // a jak teraz zapisac odrazu ten znak w zmiennej
                                            // łańcuchowej imie ???
0

Pętlą...

char name [12];
char c;
for (int i=0; i<12; i++)
{
c = getch();
cout << c;
name[i]=c;
}
0

Niedawno pisalem programik znajomemu na zaliczenie i on pokazal mi pewna funkcje z biblioteki conio.h: cgetch(). Wydawala mi si eona dosyc dziwna ale dziala zaskakujaco dobrze:

#define MAX 81 // maksymalna dlugosc napisu
char bufor[MAX+2]; // musisz zarezerwowac bufor o dwa znaki dluzszy
bufor[0]=MAX // w to miejsce wstawiasz ograniczenie, moze by cos innego niz MAX, byle nie wiecej niz 81
cgetch(bufor); // wywolanie funkcji - wczyta tylk bufor[0] znakow, czeka na zatwierdzenie enterem i reaguje na kasowanie!

Tak dziala ta funkcja, jednak nie jest ona dostepna we wszystkich kompilatorach (np nie ma jej w visualu, ale powinna byc w builderze)
W bufor[1] miesci sie liczba przeczytanych znakow.
Jesli chcesz wypisac lub skopiowac zawartosc bufora musisz podac adres przesuniety o dwa, zatem:

printf("%s",bufor+2);
lub
strcopy(jakis_adres_napisu,bufor+2);

Mam nadzieje ze nic nie pomieszalem

1 użytkowników online, w tym zalogowanych: 0, gości: 1