Récemment, j'ai vécu une situation très étrange avec mon programme C. Habituellement mon programme fonctionne bien, mais si j'ajoute juste quelques lignes pour vérifier le temps écoulé, le résultat change.C Programmation Le résultat du programme est modifié par la fonction time (& start) de <time.h>
Le code dont le résultat modifié est:
while (!feof(pfInputFile) && (c = fgetc(pfInputFile)) != EOF){
for(i = 1 ; i < SEED_SIZE ; i++){
pcSeq[i-1] = pcSeq[i]; // Shift left all sequence
}
pcSeq[SEED_SIZE - 1] = c;
}
Et le code que j'ajouté et la cause d'un problème est ci-dessous:
#include <time.h>
time_t start, end;
time(&start); time(&end);
Et puis, les personnages qui sont lus par la source ci-dessus le code est changé en caractère non reconnu.
Vous devriez apprendre à utiliser un débogueur (comme 'gdb' sous Linux); vous devriez compiler avec les informations d'avertissement et de débogage activées (c'est-à-dire 'gcc -Wall -g' sous Linux); et vous devriez poster tout votre code (le bug est probablement ailleurs) si vous voulez que nous vous aidions. –
si rien d'autre l'appel 'feof' est inutile; Vérifiez seulement le '((c = getchar()) == EOF)' – Dave
Puisque vous ne montrez pas le code minimal complet qui reproduit le problème, nous ne pouvons rien faire sauf deviner. En particulier, vous ne montrez pas comment 'pcSeq' est défini ou comment il est initialisé. Vous pourriez bien trouver qu'appeler 'printf (" Hello World \ n ");' au lieu de 'time()' change aussi la sortie. –