01/10/2018, 08:58

Tại sao không hiện thông tin mình nhận lên màn hình trong C

<img src="https://daynhauhoc.com//daynhauhoc.s3-ap-southeast-

đây là 1 bài em tham khảo trên mạng
cho em hỏi là tại sao khi em nhập vào chuỗi " chao cac ban " thì nó lại ko hiện lên (kết quả đúng )

sẵn cho em hỏi chỗ đếm ký tự tại sao phải trừ đi 1 ạ. phải chăng là do demkytu++;

Nguyễn Khanh viết 11:08 ngày 01/10/2018

Khoa NTA viết 11:07 ngày 01/10/2018

Đúng rồi bạn, do hàm _getch() còn nhận cả phím enter nữa nên sau khi ấn enter, demkytu tăng thêm 1 rồi mới check ch != '\r' và thoát vòng lặp. Mình ý kiến thêm 1 tí: code này không phải C, demtu có thể sai nếu chỉ nhập khoảng trắng.

Nguyễn Khanh viết 10:58 ngày 01/10/2018

anh ơi. vậy vì sao mình nhập từ bàn phím nó lại ko hiện lên cho mình thấy mình đã nhập những gì
có cách nào khắc phục chuyện khoảng trắng ko ạ

vô cùng cám ơn anh. em chỉ mới học thôi ạ.

Khoa NTA viết 11:10 ngày 01/10/2018

Theo tài liệu từ MSDN, hàm _getch() sẽ yêu cầu nhập một ký tự từ bàn phím nhưng không hiển thị ra màn hình. Muốn hiển thị được thì bạn thay hàm đó bằng hàm _getche() là được (‘e’ là echo).
Về phần đếm từ, bạn tạo thêm 1 biến để lưu lại ký tự cũ, nếu gặp khoảng trắng thì check xem ký tự cũ này có khác khoảng trắng hay không, khác thì tăng demtu, không thì chỉ là 2 khoảng trắng thôi.

rogp10 viết 11:14 ngày 01/10/2018

Nếu gặp khoảng trắng, xem lại xem đã bật biến cờ lên chưa, nếu chưa thì bật lên và cộng 1, ngược lại thì thôi
Ngược lại hạ cờ.

Chú ý khoảng trắng đầu và đuôi.

Nguyễn Khanh viết 11:06 ngày 01/10/2018

bật lê

em mới học
anh nói làm em hoang mang quá
biến cờ là sao a

Nguyễn Khanh viết 11:07 ngày 01/10/2018

em hiểu rồi ạ
tks anh nhiều lắm
em hơi thất lễ vì giờ mới lên coi lại được

rogp10 viết 11:04 ngày 01/10/2018

Đừng có quote kiểu đó nhé, xóa đi bạn

Biến cờ là một dạng biến ghi trạng thái. Và nhiều người không ngửi nổi cái flag này, cho rằng đây là một dạng goto. Nếu bạn thấy 1 flag 3 trạng thái trở lên thì chuyển qua enum ngay và luôn.

Bài liên quan
0