2012-05-27 11 views
7

życzę, aby ograniczyć liczbę znaków, które użytkownik może wprowadzić, używając cin. Mogę na przykład ograniczyć go do dwóch postaci. Jak mogę to zrobić?Jak ograniczyć liczbę znaków wprowadzanych przez cin?

Mój kod wygląda następująco:

cin >> var; 
+1

Michael, dlaczego usunąć fragment kodu pokazujący, że Meni używa '' operator >> (w przeciwieństwie do 'readline',' read', etc)? –

+0

@Ben, nie wierzę, że to istotne, biorąc pod uwagę, że już określone, że używa 'cin'. Jeśli uważasz, że to jest pomocne, dodam je z powrotem. –

Odpowiedz

15

Można użyć setw()

cin >> setw(2) >> var; 

http://www.cplusplus.com/reference/iostream/manipulators/setw/

Ustawia liczbę znaków do wykorzystania jako szerokość pola dla następnej operacji wstawiania.

przykład Praca dostarczone przez @chris: http://ideone.com/R35NN

+0

"wstawianie"! = "Wyodrębnianie". –

+0

@ Robᵩ, działa to z operacjami wprowadzania. Pamiętam, że książka Deitel używa jej w rozdziale przeciążania operatora do wprowadzania numeru telefonu. – chris

+0

@ Robᵩ: Przetestowałem to też. –

1

hmm można zrobić „var” tablicę znaków i użyć pętli while do odczytu wejścia aż tablica była pełna może być?

char var[somenumber + 1]; 
int count = 0; 

while(count < somenumber){ 
    cin >> var[count]; 
    count++; 
} 

var [somenumber] = '\0'; 
Powiązane problemy