파일입출력 토큰에 관해서입니다.
진나
질문 제목 : 파일입출력시 한번에 토큰을 구별하여 저장하는것외부에서 파일을 불러와서 구조체에 저장하려고합니다.
a1,a, 00:00, 15 - txt 파일에는 이런 form 의 데이터가 여러줄 들어있습니다.
그래서 fscanf로 파일을 읽어서 바로 구조체에 넣으려고 하는데
00:00 이부분에서 에러가 뜨는 듯 합니다.
질문 내용 :
처음에 제가 만든 구문입니다.
fscanf(fp,%s %s %d:%d %d, arr[i].name, arr[i].type, &arr[i].arr_m, &arr[i].arr_s, &arr[i].burst);
00:00 을 %d:%d 로 받으려 햇으나 안되더군요 그래서 %d %d로 했는데, 그것도 오류가 납니다.00:00 을int형으로 각각 따로 받아서 저장하는 방법이 궁금합니다. ㅠㅠ
도와주세요 !!
-
큰애
훔..위방식이 비주얼에선 안되는듯 하네요. 리눅스상에서는 되는데 흐규
-
남
fscanf(fp,\%[^,], %[^,], %d:%d,%d\
-
내꺼
fgets 함수로 받아서 for문으로 띄어쓰기마다 string(char배열)로 쪼개고 :를 발견했을때 양옆의 수를 따로 저장하는 식으로 하면어떨까요?
-
PinkPearl
감사해요 ㅎ 일단은 급하게라도 알려주신방법으로 인공호흡중이에요 ㅠ
-
남천
네네. 00:00 을 char time[100] 이런데다가 집어넣어서 strtok으로 나누셔셔 각각 atoi로 int에 집어넣으심 될 것 같습니다. 제가 시계프로그램 만들면서, strtok으로 했거든요.
-
고딩
그것도 생각해 봤는데, 복잡할 것 같고, 구체적으로 어떻게 해야할지 감이 전혀안잡혀서요..
그럼 char 형 변수를 따로 만들어서 여기다 넣은다음에 strtok로 나누고, 나누어진 스트링을 atoi로 int로 바꾸어야하나요 ?;; ㅠㅠ -
은소라
음.. 제가 그게 오류가 나는건지 확인을 안해봐서 모르겠지만, %s으로 한꺼번에 다 불러들여서, :를 델리미터로 지정해서 strtok으로 나누면 될 것 같습니다. 생각나는게 이것밖에 없네요.