2009-10-25 2 views
2

Visual C++는 어떤 이유로 Xcode에서 파일의 입력을받지 않습니다. xcode에서이 프로그램을 실행하면 변수 numberRows 및 numberCols가 0 (기본 함수에서 0으로 초기화 됨)으로 유지됩니다. Visual C++에서 실행하면 30과 30이됩니다 (maze.txt의 맨 위 줄은 따옴표없이 "30 30"입니다). 왜 그런지 알고 싶습니다.XCode는 파일에서 입력을받지 않습니다.

void readIn(int &numberRows, int &numberCols, char maze[][100]){ 

ifstream inData; 
inData.open("maze.txt"); 

if (!inData.is_open()) { 
    cout << "Could not open file. Aborting..."; 
    return; 
} 

inData >> numberRows >> numberCols; 
cout << numberRows << numberCols; 

inData.close(); 

return; 

}

답변

1

다른 문제가 있습니다.
불행히도 말할 수 없습니다.

오류 메시지가 있는지 확인하기 위해 출력을 세척하십시오 :

void readIn(int &numberRows, int &numberCols, char maze[][100]) 
{ 
    ifstream inData("maze.txt"); 

    if (!inData) // Check for all errors. 
    { 
     cerr << "Could not open file. Aborting..." << std::endl; 
    } 
    else 
    { 
     // Check that you got here. 
     cerr << "File open correctly:" << std::endl; 

     // inData >> numberRows >> numberCols; 
     // cout << numberRows << numberCols; 

     std::string word; 
     while(inData >> word) 
     { 
      std::cout << "GOT:(" << word << ")\n"; 
     } 

     if (!inData) // Check for all errors. 
     { 
      cerr << "Something went wrong" << std::endl; 
     } 
    } 
} 
+0

파일이 열리지 만 문제는 if 문에 아니라 inData >> numberRows >> numberCols; – Josh

+1

가능성이 낮습니다. 문제는 파일이 제대로 열리지 않았고 오류 메시지가 알려지지 않은 출력으로 플러시되지 않았기 때문일 수 있습니다. –

+0

콘솔에 "파일을 열 수 없습니다. 중단 중 ..."이 표시되지 않으면 파일이 열려 있음을 의미하지 않습니까? 진술서가 표시되는 느낌표를 지우고 나면. 그리고 미안, 나는 홍조가 뭔지 모르겠다. 1 학년 csci 학생 ... – Josh

0

재미, 그래서 나는이 게시물 http://forums.macrumors.com/showthread.php?t=796818에서 다음과 같은 제안을 다음 : 엑스 코드 3.2에서

새를 만드는 stdC++ 프로젝트를 기반으로하는 프로젝트 템플릿 의 대상 빌드 설정을 디버그합니다. 디버그 구성이과 호환되지 않는 매크로 프리 프로세서를 추가합니다.GCC-4.2 : _GLIBCXX_DEBUG = 1 _GLIBXX_DEBUG_PEDANTIC = 1

당신이 디버그/GCC-4.2 이 제대로 실행하려는 경우를 파괴한다.

관련 문제