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
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력