|
감사합니다. 알려 주신대로 수정하니 제대로 동작하네요^^
Nibble 님이 쓰신 글 :
: char hour[2] = {recvTime[0],recvTime[1]};//시간을 추출
: char min[2] = {recvTime[2],recvTime[3]};
: char sec[2] = {recvTime[4],recvTime[5]};
: char hund[2] = {recvTime[6],recvTime[7]};// 1/100초를 추출
:
: 여기 문제가 있겠죠.
:
: atoi 라는 함수는 문자열을 숫자로 바꿔주는데,
: C의 문자열이란게, 문자열이 끝났음을 알려주는 0 값이 끝에 와야 하잖아요.
: 즉,
: char hour[3] = {recvTime[0],recvTime[1], 0}; 처럼 해 보시죠.
:
: 임형섭 님이 쓰신 글 :
: : void setTime(char* recvTime)//시간을 문자열로 가져옴 ex 12345678
: : {
: : struct time time1;
: : gettime(&time1);
: : Form2->Memo1->Lines->Add("셋업타임의 값:");
: : Form2->Memo1->Lines->Add(recvTime);
: : char hour[2] = {recvTime[0],recvTime[1]};//시간을 추출
: : char min[2] = {recvTime[2],recvTime[3]};
: : char sec[2] = {recvTime[4],recvTime[5]};
: : char hund[2] = {recvTime[6],recvTime[7]};// 1/100초를 추출
: : int hour1 = atoi(hour);//문자열을 정수형으로 바꿈
: : int min1 = atoi(min);
: : int sec1 = atoi(sec);
: : int hund1 = atoi(hund);
: : time1.ti_hour = (unsigned char)++hour1; //값을 대입
: : time1.ti_min = min1;
: : time1.ti_sec = sec1;
: : time1.ti_hund = hund1;
: :
: : settime(&time1);
: : }
: :
: :
: : 이렇게 작성을 하였는데 시간이 안바뀌네요 왜 그런지 설명 부탁드립니다.
: : 컴파일러는 빌더2010이고, 운영체제는 윈도우비스타입니다.
: :
: : time1.ti_hour = 11; //값을 대입
: : time1.ti_min = 11;
: : time1.ti_sec = 11;
: : time1.ti_hund = 11;
: : 이런식으로 직접 숫자를 넣으면 시간이 바뀝니다. 시간이 바뀐다는 것은 os 아래 시계의 값이 정해준 값으로 바뀐다는것을 말합니다.
|