c언어 파일 읽기 질문이요


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

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

  • 2016년 05월 04일에 작성됨
    학생

조회수 382


2 답변


char *word = ...;
FILE *fp = fopen(...);

fscanf(fp,"%[^\t]s",word);

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

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

  • 2016년 05월 04일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.


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

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

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

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

  • 2016년 05월 04일에 작성됨
    프로그래밍 언어를 좋아하는 프로그래머

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close