C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[22799] Re:[질문] 정수를 문자열에 저장하기
Julien [julien] 1147 읽음    2002-11-23 10:31
질문을 제대로 이해한 건지는 모르겠지만, 이렇게 해 보세요.

short a[] = { 1, 2, 3, 4, 5 };
char buf[10]; // 정수를 저장하기 위한 캐릭터버퍼를 선언합니다.
memset(buf, 0, 10); // 버퍼를 초기화합니다.

// 정수값을 버퍼에 2바이트씩 복사합니다.
for(int i = 0; i < 5; i++)
    memcpy(buf + i * 2, &a[i], 2);

// 정수가 버퍼로 제대로 들어갔나 확인하기 위한 부분입니다.
short b;
for(int i = 0; i < 5; i++)
{
    memcpy(&b, buf + i * 2, 2); // 버퍼의 값을 정수변수로 복사합니다.
    Memo1->Lines->Add(b);
}


김진영 님이 쓰신 글 :
: 안녕하세요?
: 잘 안풀리는 문제가 있어서 질문을 올립니다.
: 실질적으로 해결해야 하는 문제는...
: 정수,문자를 파일로 저장하는 것입니다.
: 파일에 저장하기 해야 문자배열로 만들어야 하는데 itoa()함수말고
: 바이너리 형태의 문자로 바꾸고 싶습니다.
: 지금까진 다음과 같이 하면 되는줄 알았는데 문제가 있더군요.
:
: char str[10];
: short int int_ary[5]={1,2,3,4,5};
: for(int i=0; i<5; i++) {
:     *((short int *)&str[i*2]) = int_ary[i];
: }
:
: 아스키 코드 중 초기번호는 제어문자나 특수문자로 되어 있습니다.
: 이부분이 문제가 되는 것 같습니다.
: 실제로 저장해보면 일부분이 저장되는 길이가 정수에따라 다른경우가 생깁니다.
: 일정한 형식을 유지해야 하는데 길이가 달라지니 정상적으로 동작하지 않습니다.
:
: 인터넷등을 찾아 봤지만 이런문제를 언급한 곳을 못찾았습니다.
: 혹시 이런 형태를 다뤄보신 분계시면 답변 부탁드립니다.
:
: 꼭 위와 같은 방법일 필요는 없습니다.
: 정수를 바이너리 형태로 문자와 섞어 문자배여레 저장할 수만 있으면 됩니다.
: 답변주시면 감사하겠습니다.
: 그럼 이만...
:
:

+ -

관련 글 리스트
22775 [질문] 정수를 문자열에 저장하기 김진영 953 2002/11/22
22799     Re:[질문] 정수를 문자열에 저장하기 Julien 1147 2002/11/23
22789     Re:[질문] 정수를 문자열에 저장하기 권기식 829 2002/11/22
22798         Re:Re:[질문] 제가 알고 싶은것을 다시 설명드리면... 김진영 970 2002/11/23
22802             Re:Re:Re:[질문] 제가 알고 싶은것을 다시 설명드리면... 하느리 857 2002/11/23
22814                 Re:Re:Re:Re:[질문] 자문자답.. 김진영 923 2002/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.