이러한 기능의 실제 용도는 무엇입니까? 우리가 while 루프를 사용하여 그들을 사용한다면 우리는 입력을 "hello"
과 같이 입력하면 "hello"
이라는 결과를 얻게됩니다. EOF
그래서 요점은 무엇입니까?getchar 및 putchar의 실제 사용은 무엇입니까?
답변
getchar
및 putchar
을 사용하면 scanf
및 printf
과 같은 형식 문자열이 필요 없기 때문에 문자 I/O가 더 간단합니다.
또한 scanf
은 인수가 주어진 주소의 객체에 데이터 항목을 저장하지만 getchar
은 읽은 문자의 값을 값으로 반환합니다. scanf
과 getchar
은 모두 파일 끝에 도달했거나 잘못된 문자를 읽었거나 다른 실패 조건을 알리기 위해 값으로 EOF
을 반환합니다.
따라서 getchar
및 putchar
은 입력 또는 입력의 형식을 처리하지 않고 솔리드 코드를 작성할 수 있습니다.
파일 끝은 조건이 아니라 마커입니다. 'getchar()'는 실패했다는 신호를 보내는'EOF '를 반환합니다. 'ferror()'및/또는'feof()'를 사용하여 실패의 이유를 테스트 할 수 있습니다. – pmg
@pmg EOF는 End-of-File에 도달했음을 나타내는 여러 함수에 의해 반환 된 값으로 사용됩니다. 다른 오류 조건을 읽거나 읽었습니다. EOF는 몇 가지 실패를 나타내는 매크로이므로 어떤 의미에서는 마커입니다. 그러나, 나는 일반적으로 내 대답에 EOF를 언급했다. 나는 네가 네가 이해 한 것을 어떻게 이해하는지 보지 못한다. 확실히 downvote하는 이유가 아닐까요? –
나는 그것이 pedantism의 문제라고 생각한다. 함수는 그들이 뭔가를 읽을 때가 아니라, ** 몇 가지 이유로 ** 데이터를 읽지 못할 때'EOF'를 반환한다. – pmg
int getchar()
= 표준 입력 (stdin)의 다음 문자를 반환합니다.
기본적으로 한 번에 한 문자 씩 읽습니다.
putchar(int)
= 문자를 표준 출력 (stdout)에 씁니다.
정확한 유형의 데이터를 몰라도 모든 유형의 입출력을 처리 할 수 있습니다. IO 작업에 대한 제어 및 유연성이 향상되었습니다. 또한 scanf/pritnf보다 빠르기 때문에 많은 IO 작업이 필요한 온라인 프로그래밍 대회에서 사용할 수 있습니다.
아마도 getchar()에서 가져온 입력을 저장하고 putchar()을 사용하여 출력하기 전에 데이터를 조작하고 싶을 수도 있습니다. – nos