오늘의../오늘의 뻘짓

[C++] 파일 읽을때 깨짐 현상

호마 2014. 11. 3. 21:01



  1. void readdata()
  2. {
  3.     int n=0;
  4.     ifstream ifile("C:\\1.txt", ios::in);
  5.  
  6.     while(!ifile.eof())
  7.     {
  8.         char *ptr;
  9.         char inputstr[100];
  10.        
  11.         ifile.getline(inputstr, 100);
  12.  
  13.         ptr = strtok(inputstr, " ");
  14.         if(ptr == NULL) break;
  15.         x[n] = atoi(ptr);
  16.         printf("%s ", ptr);
  17.  
  18.         ptr = strtok(NULL"\n");
  19.         if(ptr == NULL) break;
  20.         y[n] = atoi(ptr);
  21.         printf("%s\n", ptr);
  22.  
  23.         ++n;
  24.     }
  25.     ifile.close();
  26. }


파일 읽는 함수.


꼭 ifstream을 사용하지 않아도 깨짐 현상이 발견되었다.

아래는 깨짐 현상이 발생한 모습이다.







streamwriter의 문제도 아니고,

ifstream 객체 초기화시 열기 옵션의 문제도 아니고..


결국 인코딩의 문제엿음..



제일 간단한 방법은


1. 파일을 기본 텍스트 편집기로 열어서 다른 이름으로 저장> UTF-8 ->ANSI 로 저장


다른 방법은


2. 코드에서 읽을 때 UTF-8 을 ANSI 로 변환하도록 하는것..


3. 코드를 UTF-8 용 파일 읽기 함수를 사용하는것.. 등등..





시간이 없어서 (낭비한 시간 대비 그리 중요한 일이 아니였음..) 


일단 제일 간단한 1번을 선택하였다.. ㅜㅜ