2012-05-15 5 views
2

나는 지금 완전히 아이디어가 없습니다. 기본적으로, 텍스트 파일에서 라인의 일부를 읽을 수 있지만,이 코드가 작동하지 않습니다, 나는 왜 아무 생각이 없다 :문자로 TXT 선 읽기

 char temp_char = '\0'; 
     char _char = '\0'; 
     while(1) 
     { 
      _places.get(temp_char); 
      if(temp_char == '\t') 
       break; 

      _char += temp_char; 

      cout << _char; 
     } 

기본적으로, 그 때까지 파일의 시작에서 읽을 해야하는를 탭 문자와 접촉합니다. 불행히도 결코 멈추지 않으며 _char은 아무 의미가없는 임의의 문자로 나옵니다.

TXT 파일을 살펴 봤는데 올바른 인코딩이고 탭이 파일의 일반 탭 문자이지만 어떤 이유로 든 get 또는을 사용하여 스트림에서 읽을 수 없습니다 >>. 내가 시간 동안 실험을했습니다

지금 도움을 다수의 웹 사이트를 통해보고, 나는 아무 곳에도 입수하지했습니다 ...이 모든 것이 저를 강조한다하고있다 ...

편집 : 나는 할 수도 그렇지 않은 경우 프로그램 코드의 나머지 부분을 제공하십시오./여기

파일이 개방된다 :

   ifstream _places; 
       _places.open("ECC.txt"); 
       if (_places.fail()) 
       { 
        cout << "Could not load text file, please make sure ECC.txt is in the same folder."; 
        _getch(); 
        exit(1); 
       } 
+1

왜 '+ ='을 _char에서 처리하고 있습니까? std :: string입니까? _places 란 무엇입니까? 파일을 여는 코드를 게시 할 수 있습니까? 시내가 여전히 좋은가요? – pstrjds

+4

스택 오버플로에 오신 것을 환영합니다. 우리는 나머지 프로그램을보고 싶지 않습니다. 우리는 오류를 복제하는 사소한 작은 프로그램의 나머지 부분을보고 싶습니다. http://sscce.org/를 참조하십시오. 팁. –

+1

텍스트 파일이 "올바른 인코딩"이라고 말하면서 어느 것이 올바른지 * 생각하십니까? 어떤 인코딩을 사용하고 있습니까? 그리고 어떤 플랫폼에서 코드를 컴파일하고 있습니까? –

답변

2

먼저, 표준 : 문자열 * [] char 또는 숯불 _char인가?

둘째, 내가 사용하는 것 중 하나

temp_char = _places.get() 

또는

std::string temp; 
getline(_places,temp) 
for (unsigned int i=0; i<temp.size(), ++i) 
    if (temp[i] == '\t') 
     break; 
    _char += temp[i] // assuming, and REALLY HOPING _char is a std::string 

가져 오기 그들이 INT를 반환 할 수 ifstream에서() 메소드에주의하십시오.

+0

아, 그냥 char로 _char를 사용하고 있었지만 제대로 작동하지 않는 것 같습니다. _char을 문자열로 바꾸고 전환 : _places.get (temp_char); with temp_char = _places.get() 완벽하게 작업했습니다. 비록 char을 _char로 사용하는 이유는 int로 변환 할 수 있기 때문입니다. – DatapawWolf

+0

아시다시피 char는 한 문자입니다. char c = char + char라고 말하는 것은 말이되지 않습니다. 그것을 int로 변환하려면 int 값을 얻기 위해 atoi()를 사용하거나 ASCII 값을 가져 오기 위해 단순히 int (char)를 사용할 수 있습니다. 문제가 해결 되었습니까? 아니면 더 이상 문제가 있습니까? 그것이 있다면, 질문을 편집하십시오 :) – Martol1ni

+0

사실 내 질문에 감사했습니다. 내 프로젝트를 끝내기에 충분하다고 생각합니다.^_^ – DatapawWolf