기본 콘텐츠로 건너뛰기

라벨이 format string인 게시물 표시

[c/c++] printf, wprintf 관련 format string 기술자

링크: https://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx 링크를 보시면 이해가 빠른데, "%I64d" 는 "%" + "I64" + "d" 이렇게 3부분으로 나눌수 있습니다. 중간은 생략 가능해서 생략하는 경우가 많다 로 이해하시면 쉬울듯 저도 혼돈스러워 다시 정리합니다. 추가로 몇개 더 정리하면 다음과 같습니다. %Id - 32bit platform - long 타입 / signed  - 64bit platform - longl.ong 타입 / signed  %I64d - longlong / signed %I64u - longlong / unsigned

소숫점 0.0 으로 나눈 결과 표시 방법

c, c++ format string "%f" 나 "%g" 사용중 결과가 아래와 같이 나오는 경우가 있다. 1.$ 1.#J 1.#IO 1.#INF00 헛~ 이건 뭐임? stackoverflow.com에 관련 내용이 있었음 http://stackoverflow.com/questions/840081/what-does-floating-point-error-1-j-mean 내용을 읽어본 즉 소숫점 0.0으로 나눈 경우와 관련이 있다고 하는 군요. (Devide by floating point zero) 결론적으로 포맷에 따라 다른 결과를 보여줄 뿐, 같은 내용이었습니다. 참고하세요. 아래는 MSVS 2010 Console Application 프로젝트에서 테스트한 결과 입니다. //------------------------------------------ double a = 0.0; printf("%.1f\n", 1.0 / a);  // +inf printf("%.1f\n", -1.0 / a); // -inf printf("%.1f\n", a / a);    //  NaN printf("------------------------------------------\n"); printf("%.2f\n", 1.0 / a);  // +inf printf("%.2f\n", -1.0 / a); // -inf printf("%.2f\n", a / a);    //  NaN printf("------------------------------------------\n"); printf("%.3f\n", 1.0 / a);  // +inf printf("%.3f\n", -1.0 / a); // -inf pr...