pFile 이
1
2
3
이런 파일일때
fscanf(pFile, "%f\n%f\n%f", &f[0],&f[1],&f[2]);
이런식으로 %f\n 을 연달아서 써주면 각각의 배열에 잘 들어가긴하는데, 입력 데이터 개수가 꼭 3개가 아닐때는 어떻게 해야하나요?
for ~{
fscanf(pFile,"i번째값을 뛰어넘고.%f",&f[i]);
}
이러면 될것 같은데 %f\n 을 세면서 뛰어넘는 조건이 있는지.. 아니면 더 나은 함수가 있는지.. 알려주세요. f 에는 float 자료형으로 들어가도록 해야합니다.
무슨 말인지 모르겠다. i번째 값을 뛰어넘는다는게 뭐지. 파일에 있는 float형 데이터들을 float형 배열에 모두 다 집어넣고 싶다는 소리인지??
맞습니다.
파일에 float가 몇개 써져있는지 앞에 헤더 붙이든가 아님 파일 두번 열어서 카운트 하든가 암튼 그렇게 세면 포문 안에 fscanf 쓰면 될듯
아 뛰어넘는다는게 무슨말인지 이제야 알거같은데. 혹시 첫번째 값 불러온다음 두번째 값으로 뛰어 넘어가는거 말하는거야?
예맞아요. file 은 숫자1 (개행) 숫자2 (개행) 이렇게 되어있는데 제가 하고싶은거는 배열f 에다가 f[0] = 숫자1 f[1]=숫자2 이렇게 집어넣는거에요. 근데 방금 힌트 주셔서 해결했네요 감사합니다.
scanf 를 두번 썼을때, '두번째 scanf'는 '첫번째의 scanf' 가 참조한 위치부터 읽네요.
for (auto i = 0; i < 40; i++) { fscanf(pFile, "%f\n", &f[i]); printf("%f\n", f[i]); }