Bonsoir à tous,
alors dans le cadre de mon projet de C (on va appeler ça une série TV thèque), qui doit être fait en mode console, l'utilisateur doit pouvoir effectuer les actions suivantes : ajouter un épisode, supprimer un épisode etc...
Donc tout cela fonctionne bien à partir du moment où dans le mode console j'écris ceci :
C:\Users\Jérémy\Documents\VS 2008\TVTheque\Debug\TVTheque\seriesTV.exe
et qu'ensuite ben je joue en mode console :
a
STARGATE ATLANTIS
1
2
Une nouvelle ère (2/2)
Rising (2/2)
3
Atlantis risque d'être engloutie par l'océan. L'équipe parviendra-t-elle à sauver
l'antique cité avant qu'il ne soit trop tard? Pendant ce temps, le colonel Summer est
capturé par la Gardienne des Wraith, qui s'ingénie à le torturer.
w
c:\test2.txt
Maintenant j'ai un gros problème, la prof ne va pas tester notre programme en tapant à chaque fois les instructions une à une comme on le fait en mode console. En fait elle va utiliser un fichier texte préformaté et va utiliser notre programme comme ceci :
C:\seriesTV.exe < fichierTest.txt
Cependant alors que tout marche bien dès que l'on fait tout à la main, mon programme plante à chaque fois que j'utilise cette indirection....
Pour m'aider au débuggage si l'on prend un fichier texte comme celui du dessus , ceci apparait à l'écran :
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Or je ne comprends pas pourquoi, voici le code de la fonction de lecture en mode console :
do
{
fgets(c, 255, stdin);
switch(*c)
{
case'c':case'C':if(file)ReadFile(file, hashTable);
else{
newfgets(chaine, MAXCHAR, stdin);
ReadFile(chaine, hashTable);
}
break;case'w':case'W':newfgets(chaine, MAXCHAR, stdin);
WriteFile(chaine, hashTable);
break;case'a':case'A':elt = AllocElement();
EnterInfoForAddingEpisode(elt, hashTable, chaine);
break;case's':case'S':DeleteEpisodeFromHashtable(hashTable, chaine, serieTitle, &seasonNumber, &episodeNumber);
break;case'm':case'M':break;case'r':case'R':EnterInfoForDisplayingSummary(hashTable, chaine, serieTitle, &seasonNumber, &episodeNumber);
break;case'p':case'P':break;}
}
while(*c != 'q' && *c != 'Q');
je ne comprends pas d'où viens le problème...
Si vous pouviez m'aider ce serait sympa