Sau khi tìm kiếm, có vẻ như ascii của EOF là -1, nhưng làm thế nào tôi có thể echohiểu được?
Mục đích của tôi để làm điều này là để kiểm tra xem nó có hoạt động giống như nhấn hay ctrl-dkhông nếu tôi echora ngoài EOF.
Sau khi tìm kiếm, có vẻ như ascii của EOF là -1, nhưng làm thế nào tôi có thể echohiểu được?
Mục đích của tôi để làm điều này là để kiểm tra xem nó có hoạt động giống như nhấn hay ctrl-dkhông nếu tôi echora ngoài EOF.
Câu trả lời:
Không có cách nào để lặp lại EOF. Một EOF chỉ có thể được tạo bằng cách đến cuối tệp hoặc bằng cách gọi phím nhấn được gắn vào eofcài đặt đầu cuối ( CtrlDtheo mặc định) khi tệp đang đọc được gắn vào đầu cuối.
intgiá trị -1 (hoặc 4294967295 nếu chúng tôi xem xét phiên bản không dấu) dù sao cũng không thể là một ký tự vì các ký tự chỉ có thể có giá trị từ 0 đến 255.
                    intở nơi đầu tiên?
                    fgetc(3)trang đàn ông.
                    Trong bash, bạn có thể viết exec 1>&-để đóng bộ mô tả tệp được gọi là thiết bị xuất chuẩn.
Như Ignacio đã nói, EOF không phải là một nhân vật, vì vậy câu hỏi làm thế nào để "lặp lại EOF" không có ý nghĩa gì ngay từ đầu. Bạn có thể lặp lại các ký tự (byte) hoặc bạn có thể đóng bộ mô tả tệp, nhưng bạn không bao giờ có thể lặp lại EOF.
EOFđược định nghĩa như-1trong stdio.h? Tại sao chúng ta không thể lặp lại nếu chúng ta biết giá trị ascii của nó?