화일에서 숫자를 읽어 오려하는데, 예외처리를 어떻게 해야 할까
글쓴이: lacovnk / 작성시간: 월, 2004/04/12 - 11:38오전
file에 다음과 갈이 저장되어있습니다.
숫자\t숫자\t.......숫자\t\n 숫자\t숫자\t.......숫자\t\n 숫자\t숫자\t.......숫자\t\n 숫자\t숫자\t.......숫자\t\n
이를 차례로 읽어오고, 만약 \n이나 EOF를 만나면 예외라고 알려주고 싶은데,
이를 어떻게 해야 할까요?
1. fscanf("%d\t",buffer) 를 이용하는건, EOF가 아니고 매칭이 안될 경우 0을 돌려보낸다고 맨페이지에 있어서 포기
2. fgetc()로 계속 읽어들이면서, \t를 만나면 이전까지 읽은 char들을 이용하여 int로 변환
-> 꽤 귀찮게 될것 같은데.. char* 를 선언해야 할테고.. sptrinf를 쓰려면 순서가 뒤바뀌니 곧바로 사용을 할수도 없을 테고...
지금 두가지를 생각해 봤는데, 좋은 방법이 없을까요?
Forums:
Re: 화일에서 숫자를 읽어 오려하는데, 예외처리를 어떻게 해야
strtok() , strtok_r() 함수를 사용하시는 건 어떤가요?
더 이상 읽을 토큰이 없다면 NULL 을 리턴해 주니 나름대로 괜찮을 것 같은데요...
fgets()으로 한 라인씩 읽은후 각 라인에대해 strtok()를 이용
fgets()으로 한 라인씩 읽은후 각 라인에대해 strtok()를 이용하면 되지 않을까요
strtok는 man 하면 사용법 예제 까지 나오니 여기에 따로 적을 필요는 없을 듯 합니다.
Re: 화일에서 숫자를 읽어 오려하는데, 예외처리를 어떻게 해야
fscanf( " %d", buffer );
이 정도만 해도 될듯 한데요 ;)
앞에 공백을 넣어주면 탭이나 뉴라인.. 스페이스등의 공백은 무시하니까요 ;)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
고심하여서... 다음과 같이 결정했습니다.
이런식으로 저장한 다음에 읽을때 다음과 같이 합니다.
일단, 한줄의 길이가 얼마가 될지 몰라서, strtok는 포기..입니다만. (스트링에 저장을 할수가 없으니...) 이용하는 방법이 있을까요? 으음.
댓글 달기