위도 값이 문자열 형식이고 mmmmm 부분을 dd mm.mmmmm 위도를 4 부호없는 char 값으로 저장하려고합니다. 그리고 약간 시프트 연산을 수행 할 ..위도의 작은 분수 부분을 C++의 4 unsigned char에 저장하는 방법
내 코드는 :
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
char latitude[11]="",temp[5]; unsigned char byt[4];int deg,min;
strcpy(latitude,"1234.99999N");
strncpy(temp,latitude,2);
deg = atoi(temp);
strcpy(temp,"");
strncpy(temp,latitude+2,2);
min = atoi(temp);
strcpy(temp,"");
strncpy(temp,latitude+5,5);
int min_frac_part = atoi(temp);
cout<<"minfrac : "<<min_frac_part<<"\n";
byt[3] = (min_frac_part >> 24) & 0xFF;
byt[2] = (min_frac_part >> 16) & 0xFF;
byt[1] = (min_frac_part >> 8) & 0xFF;
byt[0] = (min_frac_part) & 0xFF;
unsigned char input[2];
input[0] = (byt[1] << 2);
cout<<"input[0] is : "<<input[0]<<"\n";
return 0;
}
이 입력 [0] ... 적절하지 않다 그래서 4 개 부호 char 값이 int 값을 할당 할 수 아니다 strcpy()
도 아웃 인 맨 끝에 착신 제로 문자 말하듯 ..도 값은 부호없는 문자와 같은 다른 함수로 전달되어이 BYT ..
"이 입력 [0]이 (가) 적절하지 않음"은 무엇을 의미합니까? –
'deg = atoi (temp);'경계선을 읽으면'atoi'는 null-terminted 문자열을 기대하지만 결코'temp'를 널 종료하지 않습니다. 코드에서이 동일한 오류를 여러 번 수행합니다. –