본문 바로가기
반응형

프로그래밍45

char ch = getchar();의 문제의 원인 많은 분이 잘못 생각하시고 있는 부분이 있는데, char ch = getchar();의 문제의 원인은 char가 signed인지 unsigned인지와 전혀 관련이 없습니다. 단지 문제의 결과 발생하는 현상이 char가 signed일 때와 unsigned일 때가 다를 뿐입니다. 자세히 설명하자면, 정상적인 경우: 맨페이지를 보면 getchar() 함수는 결과값을 unsigned char로 읽어서 int형으로 캐스팅한 결과를 리턴한다고 하고 있습니다. 결과를 제대로 int형으로 받으면 0 ~ 255의 정상적인 결과와 EOF라는 에러를 저장할 수 있습니다. 문제의 원인: getchar() 함수는 257가지의 결과가 존재합니다. (256가지 정상적 결과 + EOF) 이 범위는 (signed이든 unsigned이.. 2010. 8. 11.
getc(), getch(), getchar() 카페 > 임베디드 시스템(Device.. | 별빛 http://cafe.naver.com/devctrl/1762 getchar()는 조금 조심스럽게 사용해야 한다. 실제적으로 반환하는 적당한 데이타는 8비트 char 타입이지만, 데이타를 받을 타입은 int 타입이어야 한다. 왜냐하면 8비트 데이타를 반환받고 나면 에러를 검출할 방법이 없기 때문이다. int 타입이 16비트나 32비트이기 때문에 EOF = (-1)을 에러의 검출에 사용할 수 있다. 그러므로 putchar()를 호출하기 전에 EOF를 먼저 테스트해야 한다. (-1)을 putchar()에 넘기면 문제는 일어나지 않는다. 이유는 (-1) = 255이고 255번 문자는 phantom space로 불리는 문자가 화면에 찍히고 이것은 정확히 "공백 .. 2010. 8. 11.
[추천도서] C, 자료구조, C++, STL, Win32 API, MFC.. 카페 > 김샘과 함께 하는 C 언어 | 김샘 http://cafe.naver.com/applekoong/410 [주의사항] 1. 가격보고 책 사지 맙시다. 비싼 책은 두껍지 않다면 내용이 두껍습니다. 2. 두께로 책을 판단하지 맙시다. 두껍지 않아도 좋은 내용만 있으면 충분히 무겁습니다. 3. 모든 책은 열심히 집필되었으므로, 무조건 비판하지 맙시다. 4. 추천 서적외에도 좋은 책들이 많습니다. 미처 읽어보지 못했습니다. 5. 좋은 책이 있으면 알려주십시오. 이 문서를 계속 수정해 나가도록 하겠습니다. [C 언어] 가벼운 책을 몇 번 보고 두꺼운 책으로 넘어갑니다. 어느 시점에 다다르면 코드가 많이 나오는 책을 봅니다. 1. [초급] C가 보이는 그림책 - 성안당 | ANK Co., Ltd | 번역서 |.. 2010. 8. 11.
반응형