EOF에서 Ctrl+z 와 -1의 차이
네코
2023.04.01
질문 제목 : EOF에서 Ctrl+z 와 -1의 차이질문 요약 :ctrl+z 와 -1을 눌렀을 때 종료가 되는 경우가 달라집니다질문 내용 :
FILE* fp = fopen(today.dat,w);
int ret;
int num;
ret=fscanf(stdin,%d,&num);
if(ret==EOF)
{
return -1;
}
일 경우에는 실행했을 때에 Ctrl+z를 입력해줘야 프로그램이 종료가 되더라구요 -1은 안되구요
그런데
FILE* fp = fopen(today.dat,w);
int num;
fscanf(stdin,%d,&num);
if(num==EOF)
{
return -1;
}
일 경우에는 Ctrl+z를 입력해주면 종료가 안되고 -1 을 입력해 줄 때만 프로그램이 종료가 됬습니다.
두개의 차이가 무엇인가요?
-
잠팅이
Eof는 일반적으로 -1을 뜻합니다. 헤더파일을 뜯어보시면 알 수가 있지요. 그리고 아스키에서는 ctrl+z를 누름으로써 잘못된 처리나 오류가 발생했다고 알려주는 substitute character 코드를 전송할 수 있게 해두었습니다.
엄연히 따지면 두 가진 전혀 다른 놈입니다. 단지 윈도우 계열에서는 저 SUB코드를 Eof로 받아들이는 것일 뿐입니