달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

-1.@IND00

C++ 2010. 12. 14. 00:22

NaN, NAN, nan은 "not a number"라는 뜻으로 숫자가 아닌것을 의미합니다.
가끔 연산을 하였을 때 이러한 값이 나오는 경우가 있곤 하는데,
이 이유에 대해서 설명 하자면

1) 0.0000000000000000000000001과 같은 0으로 처리해 버리는 수로 나누거나 실수 연산에서 0.0으로 나누는 상황에 발생합니다.
해결방법은 저런 값으로 나누지 않으면 됩니다. 값을 수정해야 한다는 말이죠.
0.0으로 처리될 수 있는 상황에 대하여 적당한 값을 주고 오류만 없애 주고 연산된 값이 꼭 필요하지 않는 이상 버리면 됩니다.

2) NULL을 반환해도 0.0으로 표시되거나 에러를 표시할 수 없는경우에도 발생하며 sqrt(-1.0)을 연산하면 -1.#IND00이라는 값을 반환합니다.
float.h의 _isnan()을 이용하면 NaN이 반환되는것을 체크할수 있고, 정상적인 숫자라면 0을 아니라면 NaN을 반환하니 적당히 사용하면 될것입니다.



Posted by sukay
|

CFile Class - Write, Read

C++ 2010. 12. 11. 00:01


MFC에서 CFile Class로 읽고 쓰기 예제
FILE* 만 사용하다가 CFile 클래스를 처음 사용해 보았다.
'\n'이 안들어가서 찾아보니
'\r\n' 으로 사용하라는 말이 있어 사용해 보니 적용이 되었다.
이유는 아직 잘 모르지만 이번 과제 끝나면 CFile과 직렬화에 대해서 공부 좀하고 정리해 야겠다.
MFC를 배웠다면 당연하다는 자연스러운게 이럴때면 배우지 않은게  아쉽긴하다..

Posted by sukay
|

프로그램을 구현하다 보면 데이터를 저장하기 위한 디렉토리 및 파일을 생성하는 경우가 많이 발생합니다.
파일을 다루는 경우 주로 FILE , CFile을 이용하여 파일을 다루곤 하는데
간혹 파일 및 디렉토리 생성과 삭제만 다룰 경우가 발생하고
따로 파일 포인터를 사용하지 않고 파일과 디렉토리 생성 및 삭제에 간편하게 사용되는 함수를 사용하곤 합니다.

헤더 파일 : #include <direct.h>
함수 명 :
mkdir(DirName)  -  디렉토리 생성 
rmdir(DirName)  -  디렉토리 제거
unlink(FileName)  -  파일 삭제

Posted by sukay
|