[c++]sscanf 함수를 새로 구현하려는데 이상하네요
글쓴이: lh8557 / 작성시간: 화, 2004/05/04 - 10:45오전
분명 헤드파일 선언 않하고 함수호출이름도 바껏는데
컴파일에서 인식하는건 왜그럴까요??
#include <iostream.h>
#include <string.h>
class date {
int day, month, year;
public:
date(char *d);
date(int m, int d, int y);
void show_date();
};
void sscanf(char *, char *, ...);// 여기부분
date::date(char *d) // 여기부분하고
{
sscanf(d, "%d%*c%d%*c%d", &month, &day, &year);
}
date::date(int m, int d, int y)
{
day = d;
month = m;
year = y;
}
void date::show_date()
{
cout << month << "/" << day;
cout << "/" << year<< "\n";
}
main()
{
date ob1(12, 4, 96), ob2("10/22/97");
ob1.show_date();
ob2.show_date();
return 0;
}
void sscanf(char *, char *, ...) // 이부분하고
{
}
결과값은 ob1은 제대로 나오고 ob2는 값이 이상하게나오네요
이해를 못하겠어요 어떻게 값이 나오는건지..
Forums:


[code:1]date::date(char *d&#
date::date(char *d) // 여기부분하고 { sscanf(d, "%d%*c%d%*c%d", &month, &day, &year); } void sscanf(char *, char *, ...) // 이부분하고 { }sscanf 함수에서 아무것도 하지 않으니 month 와 day, year에는 쓰레기 값이
들어있는 것이 당연하구요,
date::date(int m, int d, int y) { day = d; month = m; year = y; }ob1은 sscanf 를 쓰지 않고 초기화했으므로 매개변수로 넘긴 값이 잘~~~ 할당되어있습니다.
댓글 달기