갑자기 궁금해 지는게 많은 밤입니다.

ozon1000의 이미지

자려고 누웠는데 갑자기 궁금해지네요.
C / C++로 코딩을 연습하면서 한번도 타입이 랜덤인 데이터들을 다루지는 않았는데요.

예를들어

123 <- int
abcd <- string
456 <- int

이런식으로 데이터가 입력될때, 어떻게 int로 string으로 알고 알맞은 자료형 변수에 담을 수 있을까요?

읽어주셔서 감사합니다.

ymir의 이미지

어떤 프로그램이던지 그 목적이 있고, 그에 따라 입력과 출력이 정해집니다.
그리고 각종 프로토콜과 규칙이 정의가 되죠.
그에 맞지 않는 데이터는 예외처리하면 그만일 뿐, 무작위로 들어오는 데이터를 모두 케어해야 할 의무는 없습니다.

질문과 같은 상황과 비슷한게 있다면, 컴파일러나 파서 같은 걸 들 수 있을 것 같네요.
임의의 문자열에서 토큰을 분리해 내고, 토큰을 각각의 타입으로 분류하니까요..
각각의 타입들도 정해진 규칙이 있으니, 그 규칙을 정의하면 원하는 타입으로 분류할 수 있습니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

백연구원의 이미지

아래 링크를 활용해서 입력되는 모든 데이터의 자리수를 검사하는 방법이 있습니다.

https://linux.die.net/man/3/isdigit


소곤소곤

라스코니의 이미지

일반적으로 소프트웨어에 입력되는 데이터는 보내는 이와 받는 이 사이에 형식에 대한 약속이 되어 있어야 합니다. 보통 TLV (Type, Length, Value) 식으로 보내기도 하는데 예를 들어 'Hello'를 보내기 위해서는
'1'(문자를 의미하는 구분 코드라고 하고), '5', 'Hello' 식으로, 또는 3.14를 보내기 위해서는 '2'(실수를 의미하는 구분 코드라고 하고), '4', 3.14 라는 식이지요.

twinwings의 이미지

"정말 일반적인" 상황에서는, 데이터 전송 할 때 윗 분이 말씀하신 것 처럼

TLV 형태로 전송하게 됩니다. 특정 프로세스(혹은 어플리케이션)끼리 통시는

TLV부터 정의하는데서 시작합니다.

TLV 형태 뿐만아니라 처리하는 방법까지 통틀어서 이것을 "프로토콜" 이라고 부릅니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.