<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>소프트웨어 on Sobamemil</title>
    <link>https://blog.sobamemil.com/tags/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/</link>
    <description>Recent content in 소프트웨어 on Sobamemil</description>
    <generator>Hugo</generator>
    <language>ko</language>
    <lastBuildDate>Thu, 21 Nov 2019 22:54:37 +0900</lastBuildDate>
    <atom:link href="https://blog.sobamemil.com/tags/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>시스템 프로그래밍 프로젝트 #6</title>
      <link>https://blog.sobamemil.com/posts/015-%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-6/</link>
      <pubDate>Thu, 21 Nov 2019 22:54:37 +0900</pubDate>
      <guid>https://blog.sobamemil.com/posts/015-%EC%8B%9C%EC%8A%A4%ED%85%9C-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-6/</guid>
      <description>&lt;p&gt;&lt;strong&gt;문제 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/15/img_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;입력 데이터 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;[Command.txt&lt;/p&gt;
&lt;p&gt;0.00MB](&lt;a href=&#34;https://blog.kakaocdn.net/dna/bnbU30/btqBgeimBnY/AAAAAAAAAAAAAAAAAAAAAAPakDbTA4jf0WyG_DmDE76emfyLiazho4x1advtOToN/Command.txt?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1788188399&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=2iAm290NW4CFkRgpHKAQHRqBvxw%3D&amp;amp;attach=1&amp;amp;knm=tfile.txt&#34;&gt;https://blog.kakaocdn.net/dna/bnbU30/btqBgeimBnY/AAAAAAAAAAAAAAAAAAAAAAPakDbTA4jf0WyG_DmDE76emfyLiazho4x1advtOToN/Command.txt?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;expires=1788188399&amp;allow_ip=&amp;allow_referer=&amp;signature=2iAm290NW4CFkRgpHKAQHRqBvxw%3D&amp;attach=1&amp;knm=tfile.txt&lt;/a&gt;)
&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/15/img_2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;실행 결과 :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://img.sobamemil.com/posts/15/img_3.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;코드 :&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;&lt;/th&gt;
          &lt;th&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50&lt;/td&gt;
          &lt;td&gt;#include&amp;lt;stdio.h&amp;gt;  #include&amp;lt;string.h&amp;gt;  #include&amp;lt;stdlib.h&amp;gt;    void PrintAssm(char* name_buf, int name_size);    struct OPTAB{  char name[8];  int len;  } Wordtab[] = { {&amp;ldquo;LDA&amp;rdquo;, 3}, {&amp;ldquo;STA&amp;rdquo;, 4}, {&amp;ldquo;ADD&amp;rdquo;, 5}, {&amp;ldquo;TIX&amp;rdquo;, 2}, {&amp;ldquo;CMP&amp;rdquo;, 6} };    int main() {  char name_buf[8];  int wordtab_size = sizeof(Wordtab)/12; // Wordtab에 정의된 단어 갯수, 12 = size of char[8] + int  FILE* fp;    if((fp = fopen(&amp;ldquo;Command.txt&amp;rdquo;, &amp;ldquo;r&amp;rdquo;))==NULL) {  printf(&amp;ldquo;file not found&amp;hellip;\n&amp;rdquo;); exit(1);  }  while(fgets(name_buf, sizeof(name_buf), fp) != NULL) { // fgets() 함수는 scanf나 gets()와는 달리 뒤에 개행문자가 붙는다  if(name_buf[0] == &amp;lsquo;\n&amp;rsquo;) // name_buf 배열 맨 처음이 개행문자이면 메시지 출력 없이 무시  continue;  if(name_buf[strlen(name_buf) - 1] == &amp;lsquo;\n&amp;rsquo;) // name_buf 배열 맨 끝이 개행문자이면  name_buf[strlen(name_buf) - 1] = &amp;lsquo;\0&amp;rsquo;; // naem_buf 배열 맨 끝에 붙은 개행문자 제거  PrintAssm(name_buf, wordtab_size);  }  fclose(fp);  }    void PrintAssm(char* name_buf, int wordtab_size){  static int k=1; // 줄 번호를 나타내는 변수  static int loc=0; // 단어의 시작 위치를 나타내는 변수  int i, res=-1;  for(i=0; i&amp;lt;wordtab_size; i++){  res = strcmp(name_buf, Wordtab[i].name); // strcmp : 두 문자열이 같으면 0 리턴  if(res==0){  break;  }  }  if(i==wordtab_size){  printf(&amp;quot; Undefined word\n&amp;quot;); // Wordtab 배열 안에 정의되어 있지 않는 명령어면 출력하고 단어 무시  }  else{  if(k &amp;lt; 10)  printf(&amp;quot; &amp;ldquo;);  printf(&amp;quot;%d, %.2X, %s, %.2d\n&amp;rdquo;, k, loc, Wordtab[i].name, Wordtab[i].len);  loc += Wordtab[i].len; // 단어의 해당길이를 더해서 다음 시작 위치를 알려줌  k++;  }  }  &lt;a href=&#34;http://colorscripter.com/info#e&#34;&gt;Colored by Color Scripter&lt;/a&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;설명 :&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
