2011-03-29 44 views
5

khi đọc từ k & r tôi đã xem qua ví dụ sauk & R, làm thế nào getchar đọc EOF

#include<stdio.h> 
int main() 
{ 
int c; 
while((c=getchar())!=EOF) 
{ 
    putchar(c); 
} 
printf("hello"); 
} 

nghi ngờ 1: khi tôi đang gõ ctrl nhân vật + z (EOF trên sys của tôi). o/p là hello
nhưng khi tôi nhập chuỗi ký tự như abcdef^Zghijk o/p là abcdef -> (bao gồm mũi tên) và chờ người dùng nhập i/p thay vì chấm dứt vòng lặp và in hello ..

Trả lời

5

ctrl+z không phải là EOF, nó chỉ là một cách để yêu cầu thiết bị đầu cuối của bạn đóng luồng.

Trên hệ thống Windows, bạn cần phải viết ctrl+z làm ký tự đầu tiên của dòng, nếu không thiết bị đầu cuối coi đó là ký tự thông thường.

+0

cảm ơn bạn rất nhiều ... – Tarun

+0

Nhưng tôi có nghi ngờ rằng nếu nó được xử lý như một biến bình thường thì tại sao o/p dừng sau abcdef -> .. thay vì abcdef^zjhijk – Tarun

Các vấn đề liên quan