안녕하세요. 임의로 정해놓은 char a[5]; 에다가 abc.txt 라는 곳의 1234567890 라는 문자열을 읽어 오고자 할때 fscanf() 함수를 사용해 보면 문자열이 전부 읽히는 현상이 나타납니다. 이거 오버 플로우 아닌가요? fscanf로 공백기준으로 읽는건 편리한데 이런 현상 때문에 혹시 잘못된건 아닌가 하고 궁금해서 질문올립니다.
오버런 맞고요. scanf("%4s", a)로 필드폭을 정해도 되고 fgets로 한 라인을 읽은 다음에 문자열을 원하는 길이만큼 잘라서 각각 sscanf 해도 됩니다.
텍스트 포맷에 대한 자세한 정보
<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]
오버런
오버런 맞고요.
scanf("%4s", a)로 필드폭을 정해도 되고
fgets로 한 라인을 읽은 다음에 문자열을 원하는 길이만큼 잘라서 각각 sscanf 해도 됩니다.
댓글 달기