c언어 파일 읽기 질문이요

조회수 3216회

txt파일에 예를 들어 apple banana orange one two three ...

이런 식으로 문자열들 사이에 tap으로 구분되어있고 행이나 열 갯수가 가변적이라 할 때.. c언어로 저것들을 배열에 담는 함수나 방법좀 알려주시면 감사하겠습니다. ㅠㅠ

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • char *word = ...;
    FILE *fp = fopen(...);
    
    fscanf(fp,"%[^\t]s",word);
    

    일단 Tab으로 구분되는 한단어를 읽는 방법은 위와 같습니다.

    위를 반복적으로 호출하면 원하는 일을 할 수 있을 것 같습니다. 저장해야 하는 배열은 2차원 문자 배열로 하거나, 아주 큰(입력하는 모든 문자를 저장할 수 있는) 1차원 문자열풀(문자배열)을 만들고, 각 단어의 시작을 가리키는 포인터배열을 만드는 방법도 있습니다.

  • 파일로부터 각 행을 읽는 것과 각 행을 파싱하는 부분을 나눠서 생각하시면 조금 더 편할것 같습니다.

    C는 문자열 처리가 아주 불편한 언어인데요, 특정 구분자로 문자열을 분리하는 일반적인 방법은 strtok 함수를 사용하시는 겁니다.

    아래 튜토리얼을 한번 읽어보시면 해법이 보일거라 생각되네요 :)

    http://www.tutorialspoint.com/c_standard_library/c_function_strtok.htm

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)