2014-06-17 8 views
-2

이러한 기능의 실제 용도는 무엇입니까? 우리가 while 루프를 사용하여 그들을 사용한다면 우리는 입력을 "hello"과 같이 입력하면 "hello"이라는 결과를 얻게됩니다. EOF 그래서 요점은 무엇입니까?getchar 및 putchar의 실제 사용은 무엇입니까?

+0

아마도 getchar()에서 가져온 입력을 저장하고 putchar()을 사용하여 출력하기 전에 데이터를 조작하고 싶을 수도 있습니다. – nos

답변

0

getcharputchar을 사용하면 scanfprintf과 같은 형식 문자열이 필요 없기 때문에 문자 I/O가 더 간단합니다.

또한 scanf은 인수가 주어진 주소의 객체에 데이터 항목을 저장하지만 getchar은 읽은 문자의 값을 값으로 반환합니다. scanfgetchar은 모두 파일 끝에 도달했거나 잘못된 문자를 읽었거나 다른 실패 조건을 알리기 위해 값으로 EOF을 반환합니다.

따라서 getcharputchar은 입력 또는 입력의 형식을 처리하지 않고 솔리드 코드를 작성할 수 있습니다.

+0

파일 끝은 조건이 아니라 마커입니다. 'getchar()'는 실패했다는 신호를 보내는'EOF '를 반환합니다. 'ferror()'및/또는'feof()'를 사용하여 실패의 이유를 테스트 할 수 있습니다. – pmg

+0

@pmg EOF는 End-of-File에 도달했음을 나타내는 여러 함수에 의해 반환 된 값으로 사용됩니다. 다른 오류 조건을 읽거나 읽었습니다. EOF는 몇 가지 실패를 나타내는 매크로이므로 어떤 의미에서는 마커입니다. 그러나, 나는 일반적으로 내 대답에 EOF를 언급했다. 나는 네가 네가 이해 한 것을 어떻게 이해하는지 보지 못한다. 확실히 downvote하는 이유가 아닐까요? –

+0

나는 그것이 pedantism의 문제라고 생각한다. 함수는 그들이 뭔가를 읽을 때가 아니라, ** 몇 가지 이유로 ** 데이터를 읽지 못할 때'EOF'를 반환한다. – pmg

-1

int getchar() = 표준 입력 (stdin)의 다음 문자를 반환합니다.

기본적으로 한 번에 한 문자 씩 읽습니다.

putchar(int) = 문자를 표준 출력 (stdout)에 씁니다.

정확한 유형의 데이터를 몰라도 모든 유형의 입출력을 처리 할 수 ​​있습니다. IO 작업에 대한 제어 및 유연성이 향상되었습니다. 또한 scanf/pritnf보다 빠르기 때문에 많은 IO 작업이 필요한 온라인 프로그래밍 대회에서 사용할 수 있습니다.