c언어 메모장 데이터 읽기 질문좀 드립니다
조회수 1833회
메모장에 데이터 읽기를 하는중에 잘 모르는 부분이 있어 질문드립니다. 메모장에는 정점의 수의 갯수와 정점의 (x,y,z)좌표, 면의 갯수와 그 면의 꼭지점의 번호?들이 저장되어있습니다. 위 사진에서 10113은 정점의 갯수이고 그아래 실수들은 정점의 좌표입니다. 또 20222부터 시작하는 사진에서 20222는 면의 갯수이고 그 아래 수들은 꼭지점의 번호라고 보면 되시겠습니다.
제가 하려는 것은 OpenGL에서 이 메모장에 저장되어있는 정보들을 불러 읽어들여 제가 작성한 3차원 구 만들기 소스에 적절하게 대입,변형시켜 한 물체같은 것을 만드는 것입니다. 완성된 실행 결과를 보니 사람의 머리와 목 아래 쇄골 정도까지 나타나는 것 같더라구요.
그래서 이 메모장에 있는 정점의 좌표를 읽어들이기 위해 먼저 file 입출력함수를 썼습니다.
void main(int argc, char** argv)
{
double *fv;
int numOfVertex;
int i;
FILE *f;
f = fopen("head_new.txt", "r"); // 스트림 열기
fscanf(f, "%d \n", &numOfVertex); // 정점의 수 읽어들이기
fv = (double*)malloc(sizeof(double)*numOfVertex); // 정점의수 10113만큼 동적할당
for (i = 0; i<numOfVertex; i++) // 정점의 좌표 읽어들이기
fscanf(f, "%lf", &fv[i]);
fclose(f); // 스트림 닫기
printf("%d \n", numOfVertex); // 정점의 수 출력
for (i = 0; i < numOfVertex; i+=3) // 정점 출력
{
printf("%-20lf", fv[i]);
printf("%-20lf", fv[i + 1]);
printf("%-20lf \n", fv[i + 2]);
}
}
위 소스가 정점까지 읽어들인 소스입니다. 면이랑 번호는 아직 못했습니다
그런데 실행을 시켜보면 문제가 생깁니다. 출력이 주르륵 되다가 데이터를 다 읽어 들이면 콘솔창이 저절로 꺼져버립니다. 데이터가 제대로 읽어들였는지 확인할 겨를도 없이요..
실행을 시키고 데이터를 읽어들이는 도중에 마우스로 콘솔창을 클릭하면 데이터 읽어들이는걸 중단합니다. 물론 데이터를 다 읽어들이지는 못했지만 데이터를 성공적으로 읽어들입은 알 수있습니다.
일반 c코드에서 출력을하면 원래 마지막에 '아무키를 눌러 종료하십시오' 같은 문구가 출력되기 마련인데 이건 그런것도 없이 그냥 데이터를 주르륵 읽다가 저절로 종료해버립니다..데이터를 끝까지 읽어들였는지 제대로 읽어들였는지 확인을하려면 데이터를 다 읽어들이고 콘솔창이 그대로 유지되어야하는데 픽 꺼져버리니 당황스럽네요.
어떤 문제때문인지 잘 모르겠습니다. 별거 아닌 문제지만 도와주시면 감사하겠습니다
1 답변
-
비주얼 스튜디오를 쓰고계시는것 같은데
https://blog.bsk.im/2013/10/24/visual-studio-console-remained/
혹은
http://marinelifeirony.tistory.com/62
참고해보세요~
코드에는 딱히 이상없는것 같습니다..
댓글 입력