fgets() 함수
C & C++ 관련 :
2009. 8. 20. 19:39
반응형
char *fgets(char *s,int n,FILE *stream)
이라는 함수가 있다.
스트림에서 문자를 읽어와서 s에 기록하는 역할을 한다.
\n 문자를 만나거나 배열 s의 길이만큼 읽어들인다.
읽는 문자의 개수는 n이 상한선이고
자동으로 마지막에 NULL을 붙여줌으로써 바로 printf 등으로 쓸 수 있다.
최대 읽어들이는 문자는 n-1 이다. ㅠ.ㅠ
요즘 mp3 플레이어를 디코더만 사용해서 만들려고 하다보니.
보통 어려운게 아니다.
ID3 태그에 대해서도 찾아보고 MP3 포멧에 대해서도 찾아보고 @_@ ....
일단 MP3 를 AAU 단위로 쪼개야 하는것 같은데.
MP3 파일 앞에 ID3v2 태그가 붙어있어서 어디서부터가 AAU 인지를 모르겠다. ID3v2는 가변적 크기를 갖을 수 있단다. ㅠ
젠장 그래서 일단 ID3v1 추출하는것은 완성했고
ID3v2를 추출하는 것을 만든 다음에 MP3 재생을 시작할려고 하고 있다.
아무튼간 ID3v2를 파싱해서 써먹을라면 파일에서 한 바이트씩 읽어와야 하는데
fgets 의 사용법을 누구 말마따나 오해하고 있어서 젠장.
한참 헤메고 감으로 때려 맞췄는데. 레퍼런스에 저렇게 친절하게 자세히 설명 되어 있었던 것이다.
난 char 하나 선언하고
fgets(?, 1, FILE); 이라고 쓰면 되는줄 알았더니.
1이라고 쓰면 개뿔 하나도 못읽어온다. ㅠ.ㅠ 이것때문에 한 5분 고민했다. ㅠ.ㅠ
그냥 숫자 바꾸니까 되길래 아마 그럴것이다. 라고 생각하고 만들었는데
만들고 나서 정리하려고 찾으니까 저렇게 떡! 하니 설명되어 있는것을.... ㅠ
기본이 부족함을 느꼈다. ㅠ
이라는 함수가 있다.
스트림에서 문자를 읽어와서 s에 기록하는 역할을 한다.
\n 문자를 만나거나 배열 s의 길이만큼 읽어들인다.
읽는 문자의 개수는 n이 상한선이고
자동으로 마지막에 NULL을 붙여줌으로써 바로 printf 등으로 쓸 수 있다.
최대 읽어들이는 문자는 n-1 이다. ㅠ.ㅠ
요즘 mp3 플레이어를 디코더만 사용해서 만들려고 하다보니.
보통 어려운게 아니다.
ID3 태그에 대해서도 찾아보고 MP3 포멧에 대해서도 찾아보고 @_@ ....
일단 MP3 를 AAU 단위로 쪼개야 하는것 같은데.
MP3 파일 앞에 ID3v2 태그가 붙어있어서 어디서부터가 AAU 인지를 모르겠다. ID3v2는 가변적 크기를 갖을 수 있단다. ㅠ
젠장 그래서 일단 ID3v1 추출하는것은 완성했고
ID3v2를 추출하는 것을 만든 다음에 MP3 재생을 시작할려고 하고 있다.
아무튼간 ID3v2를 파싱해서 써먹을라면 파일에서 한 바이트씩 읽어와야 하는데
fgets 의 사용법을 누구 말마따나 오해하고 있어서 젠장.
한참 헤메고 감으로 때려 맞췄는데. 레퍼런스에 저렇게 친절하게 자세히 설명 되어 있었던 것이다.
난 char 하나 선언하고
fgets(?, 1, FILE); 이라고 쓰면 되는줄 알았더니.
1이라고 쓰면 개뿔 하나도 못읽어온다. ㅠ.ㅠ 이것때문에 한 5분 고민했다. ㅠ.ㅠ
그냥 숫자 바꾸니까 되길래 아마 그럴것이다. 라고 생각하고 만들었는데
만들고 나서 정리하려고 찾으니까 저렇게 떡! 하니 설명되어 있는것을.... ㅠ
기본이 부족함을 느꼈다. ㅠ
반응형
'C & C++ 관련' 카테고리의 다른 글
uint8, uint16, uint32, uint64 (0) | 2009.09.08 |
---|---|
_splitpath / 경로명에서 원하는 정보 분리하기 (0) | 2009.08.10 |
gprintf debug routine syslog (0) | 2009.08.03 |