a = getchar()
은 scanf("%c",&a);
과 동일합니까?getchar()은 scanf ("% c")와 같고 putchar()은 printf ("% c")와 동일합니까?
putchar(a)
은 printf("%c",a);
과 같습니다. a
은 char
입니다.
a = getchar()
은 scanf("%c",&a);
과 동일합니까?getchar()은 scanf ("% c")와 같고 putchar()은 printf ("% c")와 동일합니까?
putchar(a)
은 printf("%c",a);
과 같습니다. a
은 char
입니다.
일반적으로 네 말은 동일합니다.
그러나 그들은 몇 가지 변덕스러운 방법이 아닙니다. 함수 getchar
은 int
을 반환하고 char
이 아닌 값을 반환합니다. 이렇게하면 getchar
모두 가능한 모든 char
값과 오류 코드가 모두 가능합니다. (가) 행복하게 대부분의 컴파일러로 컴파일 다음 동안 본질적으로 오류 메시지가
char c = getchar();
기능 scanf
를 멀리 절단되도록
는하지만, 당신이 직접 char
유형을 사용할 수 있습니다과에 에러 코드를 분리 반환 값.
오류 메시지 (복수형), " 오직 "EOF. 하지만 그렇지 않으면이 말이 맞습니다. 또한 라이브러리가 형식 문자열을 구문 분석 할 필요가 없기 때문에 getchar()이 scanf()보다 훨씬 효율적이라고 말해야합니다 (링커는 scanf 인 큰 블록의 블록에서 링크하지 않아도됩니다.)). – DevSolar
여기서도 마찬가지입니다. 그러나 문자를 그냥 쓰는 중임을 알고 있다면 printf
및 scanf
변형이 요청을 처리하는 방법을 결정할 때마다 문자열을 파싱해야하므로 getchar
및 putchar
이 더 효율적입니다. 또한 더 낮은 수준의 라이브러리에서 호출되어 다른 곳에서 필요하지 않은 경우 printf
/scanf
링크가 필요하지 않을 수도 있습니다.
자세한 내용은 http://stackoverflow.com/questions/2507082/getc-vs-getchar-vs-scanf-for-reading-a-character-from-stdin – Lazer