Kiểu dữ liệu unsigned long trong C++

ở chỗ int N;
Nếu thay bằng unsigned long N; thì vòng lặp while nó ko thực hiện là lý do gì ạ
cho em hỏi thêm số 1000 trong cin.ignore(1000, ‘\n’); có ý nghĩa gì ạ?!
thank all!

cin.good() để làm gì vậy bạn?

em ko biết ,code này e copy thôi a , nó có ý nghĩa gì ạ.
yêu cầu bài toán nếu N<0 ,N là kí tự , N ko là số nguyên thì phải báo lỗi ạ

A post was merged into an existing topic: Topic này chứa các post được cho là Off-topic

Xin lỗi bạn mình chưa thấy hàm good() bao giờ :v nhưng nếu vòng lặp không chạy lấy một lần thì có vẻ hàm cin.good() luôn trả về true rồi? bạn xem kỹ hàm cin.good() xem saooo

1 Like

unsigned là các kiểu dữ liệu số dương bạn à. while (N<0) thì chắc chắn không bao giờ xảy ra rồi :))

cin.good() trả về true nếu như stream không làm sao cả, trả về false nếu như stream có vấn đề (ví dụ như nhập int N = "cái gì đó không phải là số"; hoặc đọc ghi file không thực hiện được chẳng hạn) nên trong trường hợp của bạn, phải nhập N là cái gì đó gây lỗi (ví dụ "ahjhj" thay vì số) thì vòng while mới chạy.

cin.ignore(1000, '\n') tức là bỏ qua 1000 ký tự trong buffer hoặc đến khi gặp ‘\n’ (Nếu không có dòng này, khi em ấn Enter thì trong buffer của chương trình sẽ có một ký tự xuống dòng, và lệnh cin >> N; trong vòng lặp sẽ nhận ký tự xuống dòng này là ký tự đầu tiên để chuyển thành dãy chữ số của N.

buffer là sao ạ? …

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?