int로 저장된 배열을 스트링으로 저장하는 방법.

nazuna의 이미지

전에 체인코드 관련해서 질문을 올린 적이 있는데요.
현재 체인코드를 계산해서 txt 파일로 뿌려보는 것까지는 되었습니다.
체인코드도 잘 나오고요.
그런데 이 코드가 지금 double chain_code[100] 크기의 배열에 저장되어 있는데
계산을 완료한 최종 시점에는 소수점 이하가 없는 수로 저장되어 있어
파일로 뿌릴때는 (int)chain_code 처럼 (int)를 붙여서 소수점 이하를 버리고(코드니까)저장했습니다.
이번에는 프로그램 내에서 처리하기 위해 인자로 전달받은 포인터에 저장하려고합니다.
그런데 자꾸 쓰레기 값이 저장되서 고민입니다..

포인터로 전달받는 도중에 문제가 있는건가 싶어서 합친 것을 포인터로 넘기지 않고 바로 파일로 뿌려보아도 쓰레기 값이고요.
스트링으로 합치는 과정에서 문제가 있는것같은데 왜 그러는지를 모르겠습니다.
itoa((int)chain_code[],char,10) 로도 해보고 미리 int 형에 저장해서 itoa(int,char,10)도 해보고요.
ssteam도 strcat도 다 쓰레기 값이 나오네요.
(int)로 하던 int 형에 미리 담아서 그 int를 넣어주던 다 문제입니다..

보다 근본적인 다른 문제가 있는것 같은데 그것을 못찾겠습니다.

int를 스트링에 하나로 합쳐 저장할 때 유의점이나 위 방식의 오류를 지적해 주시면 감사하겠습니다..

익명 사용자의 이미지

int 를 스트링에 합쳐 저장할 때의 유의점은.. 글자 그대로 해석하여 답을 해드리면 그렇게 하지마세요 라고 말씀드리고 싶네요.
숫자 1 과 숫자 23 을 합쳐서 "123"으로 저장하시겠다는 건지 의도 파악이 잘안됩니다. 차라리 코드를 보여주시는 편이 나을 듯 싶네요.

nazuna의 이미지

지금 코드가 랩실에 있어서(어째선지 제 컴퓨터에선 코드가 에러가 나서..) 지금은 없는데
OnlineString 이라는 클래스에서 void line_coding 이라는 함수가 for문으로 4번 반복이 됩니다.
이유는 숫자 4의 경우나 5 같은 경우 입력되는 이미지에 따라서 최대 4번까지 분리를 해야 하더군요.
line_coding에서는 double chain_code[100] 크기의 배열에 for문안의 if문으로 각도를 비교해서 차례로 정수로 입력되구요.
double형인 이유는 앞서 연산에서 쓰이는 변수들이 전부 double 형이고 최종적으로 계산된 각도가 chain_code에 저장된 뒤 각도를 계산했던 for문 바깥의 마지막 작업에서 코드로 바꾸게끔 구현했습니다.
이 chain_code[]에 입력된 값을 매 반복시 마다 OnlineString 으로 가져가서 합치려고 했습니다.
의도는 말씀하신 대로 숫자 1과 숫자 23을 합쳐 123 을 만드는 것이 맞구요.

이 글을 올리고도 쭉 찾아보니 다들 int를 스트링에 저장하지 말라고 하네요..
이유도 자세히 설명된 글이 있어서 위험하다는걸 알게 됬습니다.
그렇다면 이 경우에는 어떻게 출력을 해야 할지 모르겠네요.
가능하면 텍스트파일로 뽑지 말고 프로그램 내에서 메시지 박스로 뽑아내고 싶은데 말입니다..
메시지 박스로 뽑으려 한 이유는 원래는 이미지 옆에 텍스트로 출력하려 했는데
도무지 자식창의 코드를 못찾아서요..리소스 보기에도 없고..

월요일 즈음이라면 코드로 다시 올려보도록 하겠습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.