Cần giải đáp về EOF

Em đang học C++ cơ bản trên trang của mình và có bài này:
Nhập họ và tên của mình (Viết không dấu do bảng mã ASCII bị giới hạn) từ bàn phím. Xóa màn hình console đi và in ra lại họ tên mà mình vừa nhập từ bàn phím, nhưng in ra lần lượt từng kí tự, mỗi lần in kí tự sẽ tạm dừng trong một khoảng thời gian ngắn

  • Ở phần while (ch != ‘\n’ && ch != EOF) sẽ kết thúc vòng lặp khi gặp dòng ‘\n’ hoặc kí tự kết thúc file EOF. Nhưng khi em đổi thử điều kiện thành while (ch != ‘\n’) thì nó vẫn kết thúc khi gặp ký tự EOF (ctrl-z)
    Ví dụ: kem chuoi ^Z aaaa thì nó hiển thi ra là kem chuoi →

Anh chị có thế giải thích giúp em tại sao nó không hiển thị cả ctrl-z mà lại kết thúc trong khi e chỉ để điều kiện là while (ch != ‘\n’) đc ko ạ. Em cảm ơn anh chị nhiều

#include <iostream>
#include <Windows.h>
using namespace std;

int main()	
{
	char ch;
	cout << "Enter your full name: ";
	cin >> ch;

	system("cls");

	do
	{
		cout << ch;
		ch = cin.get();
		Sleep(50);
	} while (ch != '\n' && ch != EOF);
	cout << endl;

	system("pause");
	return 0;
}

Bạn đăng code lên đây theo hướng dẫn tại đây:

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