>n) - Tôi đoán nó sẽ kiểm tra EOF một cách ngầm định. Tại sao nên sử dụng -6ren">
cuốn sách gpt4 ai đã làm

Tại sao iostream::eof được coi là sai trong điều kiện vòng lặp (tức là `while (!stream.eof())` )?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 13:31:55 28 4
mua khóa gpt4 Nike

Tôi vừa rồi cái này Tôi tìm thấy một bình luận nói rằng nó được sử dụng trong điều kiện vòng lặp iostream::eof “Gần như chắc chắn là sai.” Tôi thường sử dụng một cái gì đó như trong khi(cin>>n) Có điều gì đó - tôi đoán nó ngầm kiểm tra EOF.

Tại sao sử dụng trong khi (!cin.eof()) Có sai khi kiểm tra rõ ràng eof không?

Nó được sử dụng trong ngôn ngữ C scanf("...",...)!=EOF Sự khác biệt là gì (tôi sử dụng nó thường xuyên mà không gặp vấn đề gì)?

câu trả lời hay nhất

因为 iostream::eof sẽ chỉ trở lại ĐÚNG VẬY after Đọc phần cuối của luồng. NóKHÔNGCho biết lần đọc tiếp theo sẽ là từ cuối luồng.

Hãy xem xét điều này (và giả sử lần đọc tiếp theo sẽ ở cuối luồng):

while(!inStream.eof()){
dữ liệu int;
// yay, vẫn chưa kết thúc luồng, giờ hãy đọc ...
trong dòng >> dữ liệu;
// ồ chết tiệt, bây giờ chúng ta đọc phần cuối và *chỉ* bây giờ bit eof sẽ được đặt (cũng như bit bị lỗi)
// thực hiện các thao tác với dữ liệu (hiện chưa được khởi tạo)
}

phản đối:

dữ liệu int;
while(inStream >> dữ liệu){
// khi đến đây, chúng ta có thể chắc chắn rằng quá trình đọc đã thành công.
// nếu không, luồng trả về từ operator>> sẽ được chuyển thành false
// và vòng lặp thậm chí sẽ không được nhập
// thực hiện công việc với dữ liệu được khởi tạo chính xác (hy vọng vậy)
}

Về câu hỏi thứ hai của bạn: bởi vì

if(scanf("...",...)!=EOF)

như nhau
if(!(inStream >> data).eof())

KHÔNGNhư nhau

if(!inStream.eof())
inFile >> dữ liệu

Về c++ - Tại sao iostream::eof bị coi là sai trong điều kiện vòng lặp (tức là `while (!stream.eof())` )? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/31090676/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress