아하
생활

생활꿀팁

은혜로운왈라비232
은혜로운왈라비232

while((ch = getc(ie)) != EOF)의 의미를 알고 싶습니다.

EOF가 -1로 선언된 매크로 상수던데 while((ch = getc(ie)) != EOF)

While 조건은 파일에서 문자를 하나 읽어와서 그 문자를 ch에 저장하고 ch가 -1이 아닐 경우에는 반복문을 실행하는게 맞나요?

문자를 하나 읽어올 때 파일의 끝이면 -1이 반환되는 건지 알고 싶습니다.

55글자 더 채워주세요.
2개의 답변이 있어요!
  • 남다른메추리264
    남다른메추리264

    상기 조건은 getc()가 제대로 읽어오지 못할 때는 -1을 반환하도록 정의된 함수같습니다.

    getc() 함수는 String에서 한 바이트씩 읽어오는 기능입니다.

    정상적으로 작동했을 때는 0을 리턴하는 것 같고요.

    EOF는 end of file의 약자이며 File의 끝을 알려주는 상수값입니다.

    감사합니다.

  • EOF는 문자열의 끝을 알려주는 특별한 매크로입니다.

    파일 input을 할때 항상 끝에 입력이 같이되서 들어가죠.

    while((ch = getc(ie)) != EOF) 이 코드 뒤의

    while문을 EOF가 나오기 전까지 계속 실행하는 것입니다.

    즉, 만약 while문 안에있는 코드가 printf(ch); 이라고 가정한다면

    EOF 문자가 출력되기 전 즉, 문자열이 끝나기전까지 계속해서 출력한다는 뜻이 됩니다.