strtoll ?
글쓴이: jee89 / 작성시간: 목, 2005/09/08 - 10:52오전
#include <stdio.h> #include <stdlib.h> #include <errno.h> ... long long num; char str[5]; strcpy( str , "1010" ); if ( ( num = strtoll( str , 0 , 2 ) ) == 0 ) fprintf( stderr , "strtoll %s\n" , strerror( errno ) ); printf( "%ld|\n" , num );
마지막줄 printf의 결과가 10 이라고 나오기를 기대하는데 항상 0이 나옵니다.
무엇을 잘못했는지요?
Forums:
전 잘 되는군요. 아래는 제가 작성한 코드입니다.[code:1]#in
전 잘 되는군요. 아래는 제가 작성한 코드입니다.
님이 작성하신 코드에 보면 strtoll의 return값이 0이면 error처리를 하셨는데
그 부분은 이상합니다.
strtoll의 man page를 보면
여기서 윈도우에서는 10이라고 나오는데 ... 유닉스에서는 0이네
sun 유닉스에서는 계속 0이네요..
참고로 gcc 컴파일합니다.
ASER-OMP[as/export/home/as/PKG/MP/R1.0.0/include]gcc -v
Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2/specs
Configured with ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model posix
gcc version 3.4.2
gcc -o a a.c
./a
이유를 아시는 분 도와주세요.
[quote]printf( "num= %ld\n", num );[/quo
* 가끔은 64비트 정수( long long)을 출력하는 방법도 알아보기도 한다. 윈도우? 유닉스/리눅스?
댓글 달기