Mình đang học phần tập tin có lệnh sau:
while (!feof(file))
{
…
}
Hàm feof là hàm kiểm tra đk đã cuối file hay chưa. Hàm trả về -1 nếu hết file, trả về 0 nếu chưa hết file và trả về 1 số nguyên nếu lỗi. Vậy dùng toán tử not ở đây có ý nghĩa gì ạ? Mình phải hiểu ntn ạ?
Cách sử dụng toán tử luận lý NOT(!)
Bạn nhầm rồi, hàm này trả về 0 = chưa hết file, số khác 0 = đọc hết rồi.
-> !feof() là nếu chưa hết file thì …
1 Like
thì sao bạn ơi???
NOT là phủ định, có thành không, không thành có, đúng thành sai và sai thành đúng.
Trong C/C++ thì 0 cũng có nghĩa là sai, và khác 0 là đúng.
Vậy nếu hàm feof trả về 0 khi hết file, nếu lấy phủ định của nó sẽ thành là gì?
1 Like
Nó sai vì có 2 lí do:
- Khi file đã đọc hết, nó trả về số khác 0, nhưng toán tử NOT (!) chuyển về số 0.
- Khi bạn truyền tên file vào tham số file trong hàm feof(), nếu file không hợp lệ, thì hàm trả về -1 và toán tử NOT (!) lại chuyển nó thành 0, làm vòng while không bao giờ dừng.
1 Like
Thì tùy mình xử lý chứ sao
Mình ghi v ý là thì làm gì đó ấy.
2 Likes
Rất đầy đủ. Thanks you. 
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?