2009-10-25 4 views
2

Pour une raison quelconque, Xcode ne prendra pas d'entrée à partir d'un fichier, tandis que Visual C++ le fera. Lorsque j'exécute ce programme dans xcode, les variables numberRows et numberCols restent 0 (elles sont initialisées à 0 dans la fonction principale). Quand je l'exécute dans Visual C++ ils deviennent 30 et 30 (la ligne supérieure de maze.txt est "30 30" sans les guillemets). Des idées pour lesquelles cela se passe?XCode ne prendra pas d'entrée à partir d'un fichier

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; 

}

Répondre

1

Il y a quelque chose d'autre mal.
Malheureusement, il est difficile à dire.

essayez de vider la sortie pour vous assurer que vous obtenez le message d'erreur:

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

le fichier ne s'ouvre pas, le problème n'est pas dans l'instruction if, mais plutôt avec inData >> numberRows >> numberCols; – Josh

+1

Peu probable. Je pense que le problème est plus susceptible d'être le fichier n'a pas été ouvert correctement et parce que le message d'erreur n'est pas vidé à la sortie que vous n'avez pas remarqué. –

+0

si la console n'affiche pas "Impossible d'ouvrir le fichier. Abandonner ..." wouldnt que cela signifie que le fichier est ouvert? après avoir enlevé le point d'exclamation que cette déclaration affiche. Et désolé, je ne sais pas ce que le rinçage est. Étudiant csci de première année ... – Josh

0

intéressant, alors j'ai suivi la suggestion suivante de ce poste http://forums.macrumors.com/showthread.php?t=796818:

Dans Xcode 3.2 lors de la création d'une nouvelle projet basé sur stdC++ projet modèle les paramètres de génération cible pour La configuration de débogage ajoute des macros préprocesseur qui sont incompatibles avec gcc-4.2: _GLIBCXX_DEBUG = 1 = 1 _GLIBXX_DEBUG_PEDANTIC

Détruisez si vous voulez Debug/gcc-4.2 à exécuter correctement.

Questions connexes