2012-05-27 33 views
7

Tôi muốn giới hạn số lượng ký tự mà người dùng có thể nhập, sử dụng cin. Tôi có thể muốn giới hạn nó thành hai ký tự, ví dụ. Làm thế nào tôi có thể làm điều này?Làm cách nào để hạn chế số lượng ký tự được nhập qua cin?

Mã của tôi trông như thế này:

cin >> var; 
+1

Michael, sao anh loại bỏ các đoạn mã cho thấy Meni được sử dụng 'operator >>' (như trái ngược với 'readline', 'read', vv)? –

+0

@Ben, tôi không tin nó có liên quan, bởi vì anh ta đã chỉ định rằng anh ta đang sử dụng 'cin'. Nếu bạn nghĩ nó hữu ích, tuy nhiên, tôi sẽ thêm nó trở lại. –

Trả lời

15

Bạn có thể sử dụng setw()

cin >> setw(2) >> var; 

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

Thiết lập số lượng ký tự được sử dụng như chiều rộng lĩnh vực cho hoạt động chèn tiếp theo.

dụ làm việc được cung cấp bởi @ Chris: http://ideone.com/R35NN

+0

"chèn"! = "Trích xuất". –

+0

@ Robᵩ, điều này hoạt động với các hoạt động đầu vào. Tôi nhớ cuốn sách Deitel sử dụng nó trong chương quá tải toán tử để nhập số điện thoại. – chris

+0

@ Robᵩ: Thử nghiệm nó quá. –

1

hmm bạn có thể làm 'var' một mảng ký tự và sử dụng một vòng lặp while để đọc đầu vào cho đến khi mảng đã đầy đủ có lẽ?

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

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

var [somenumber] = '\0'; 
Các vấn đề liên quan