[C] 허프만 트리 코딩 문제

leedors527의 이미지

제목 그대로 허프만 트리를 작성하는 과제를 수행하고 있습니다.

트리를 만들기 전 문자열의 각 알파벳의 개수를 알아야 하는데

제가 하는 과제의 경우 문자열을 직접 입력하는 게 아니라 파일에 저장된 텍스트를 받아서 이 텍스트 안에 있는 알파벳의 각각의 개수를 구해야 하더군요.

제가 알고 있는 C에서 지원하는 파일 입력 함수는 fgets, fscanf 등등인데 이게 텍스트의 첫줄만 받고 개행 밑으로는
안 받고 그대로 리턴해버리더라고요.

개행 문자는 인식을 안하고 그냥 전부 다 받아버리게 할 순 없을까요?

가령 텍스트 파일에

banana
apple
orange

이렇게 있으면

char text[] = "bananaappleorage";

이런 식으로 받게 하고 싶습니다.

shint의 이미지

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

익명 사용자의 이미지

fgetc라고 문자를 한 개만 입력받는 함수가 있습니다. 이 함수를 이용해서 문자 하나 입력받고 isalpha 함수로 알파뱃인지 체크한 다음 char 버퍼에 추가하는 식으로 구현하시면 될 것 같네요.

익명 사용자의 이미지

알파뱃 각각을 카운팅 하는 문제라면 그냥 char 버퍼에 저장하지 않고 바로 카운팅 하셔도 되겠네요.