Đây là mã của tôi. Tôi chạy nó trong ubuntu với thiết bị đầu cuối. khi tôi nhập (CtrlD) trong thiết bị đầu cuối, chương trình không dừng lại nhưng vẫn tiếp tục chờ đầu vào của tôi.ctrl-d không dừng lại trong khi vòng lặp (getchar()! = EOF)
Không phải là CtrlD bằng EOF trong unix?
Cảm ơn bạn.
#include<stdio.h>
main() {
int d;
while(d=getchar()!=EOF) {
printf("\"getchar()!=EOF\" result is %d\n", d);
printf("EOF:%d\n", EOF);
}
printf("\"getchar()!=EOF\" result is %d\n", d);
}
Đó không phải là đệ quy. Nó chỉ là một vòng lặp vô hạn cho đến khi bạn EOL đầu vào. Đệ quy = hàm gọi chính nó trực tiếp hoặc sau một số bước trung gian khác. –
Biên dịch với gcc, nhấn '^ D' đã dừng vòng lặp cho tôi. –
@JonLin Đơn giản chỉ cần nhập^D. Nó cũng làm việc cho tôi. Tuy nhiên, khi đầu vào là (a^D), vòng lặp không dừng lại. – Sam