|
칼럼별로 분리하는데 있어서..
각 칼럼의 길이와 중간 공백이 명확한 경우에는 정확하게 fread하면 편하겠지만,
칼럼의 길이가 예측이 어렵고(100점 90점 이렇게 길이가 달라질수도..)
중간 공백의 길이나 탭 유무 등에서 불확실한 경우에는
strtok() 라는 함수를 사용해서 토큰을 분리하는 방법도 괜찮습니다.
이병희 님이 쓰신 글 :
: 표준함수로 가능한지가 저의 질문이었읍니다.
: 님의 답변대로 표준함수로는 불가능할거 같군요.
: 형변환함수를 이용해서 써야겠군요.
: 성의있는 답변 정말 진심으로 감사드립니다^^
: 혹시....
: 추후에 다른 방법이 발견되시면 다시 리플좀 달아주실꺼져? ^^
: 행복하세요~
:
: 돈데크만 님이 쓰신 글 :
: : 주로 포트란으로 파일을 쓰게 되면, 컬럼단위로 읽고 쓰는게 무지 편한데
: : c나 c++은 컬럼단위가 아니라서 좀 불편은 하지요..
: : 더 편한 방법이 분명 있을것 같지만 제 경험상 말씀드리자면,
: : 표준 함수중에는 쉽게 할 수 있는 방법이 없는듯합니다.
: : 잘 기억은 나지 않지만, 라인단위로 버퍼에 읽어들인 다음(getline이던가?),
: : 컬럼별로 분리해서(이 경우에는 3단위로 다시 char a[3]같은데) 임시 스트링
: : 버퍼에 집어넣은후
: : 형변환 함수( atoi 또는 atof)를 적용하여 의미있는 정수또는 실수로 바꾸는
: : 방법을 썻던 것 같습니다. 좀 지저분해지겠지요..
: :
: : 아니면 읽어들이고자 하는 data화일을 직접 처리하는게 아니라 중간 임시
: : 화일을 써서 임시 화일에서 쓰는 수도 있습니다. 가령 이 경우라면
: : 3column마다 캐리지 리턴을 주어 라인을 삽입하던지, 스페이스를 삽입한
: : 임시 화일을 쓰게 되면 임시 화일로부터 숫자 읽기는 표준 함수로 쉽게
: : 할 수 있을것입니다.
: : 음. 님이 원하시는 답변이었는지 모르겠군요.. 아님 말구(조선일보 말투~)
: : 그럼 수고하세요.
:
|