30/09/2018, 17:21

Thắc mắc về stdin và bộ đệm

Mọi người cho mình hỏi chút…mình chưa phân biệt được giứa stdin với bộ đệm bàn phím…Có phải khi mình nhập dữ liệu từ bàn phím thì dữ liệu được đưa vào bộ đệm đến khi mình gõ phím Enter thì mới chuyển vào stdin không ạ…Trong quyen C của Gs Phạm Văn Ất có nói:
Khi máy đang dừng sau câu lệnh scanf…mà mình nhập dữ liệu thì dữ liệu ấy sẽ được chuyển vào stdin…còn các trường hợp khác thì gưi vào bộ đệm nhưng mình chưa hiểu rõ lắm…mọi người chỉ giáo…

Mai Anh Dũng viết 19:24 ngày 30/09/2018

Ngo Dinh Quyen viết 19:32 ngày 30/09/2018

Nhưng anh ơi…em hiểu thế này có đúng không ạ…khi mình nhập dữ liệu từ bàn phím thì các kí tự sẽ được lưu trên bộ đệm trước (để có thể chỉnh sửa) đến khi mình ấn phím Enter thì các kí tự lại được chuyển vào stdin…

... viết 19:32 ngày 30/09/2018

Phím Enter vẫn là 1 kí tự trong bảng mã ASCII thôi bạn. Chương trình bạn viết yêu cầu đọc dữ liệu từ buffer thì nó sẽ đọc, còn tùy bạn muốn đọc bao nhiêu. Nếu đọc 1 dòng thì khi nào gặp kí tự Enter thì sẽ không đọc nữa.

Ngo Dinh Quyen viết 19:32 ngày 30/09/2018

“Phím Enter vẫn là 1 kí tự trong bảng mã ASCII thôi bạn. Chương trình bạn viết yêu cầu đọc dữ liệu từ buffer thì nó sẽ đọc, còn tùy bạn muốn đọc bao nhiêu. Nếu đọc 1 dòng thì khi nào gặp kí tự Enter thì sẽ không đọc nữa.”
bạn có thể nói rõ hơn dược không ạ…mình là newbie nên không hiểu cho lắm…bạn có thể giải thích cơ chế cho mình không…thank

Nguyen Van viết 19:23 ngày 30/09/2018

Anh Đạt ơi em cũng hiểu như bạn Ngo Dinh Quyen là
khi mình nhập dữ liệu từ bàn phím thì các kí tự sẽ được lưu trên bộ đệm trước đến khi mình ấn phím Enter thì các kí tự lại được chuyển vào stdin.
Như vậy có đúng không ạ

Bài liên quan
0