Недавно я испытал очень странную ситуацию по моей программе на C. Обычно моя программа работает нормально, но если я добавлю несколько строк для проверки прошедшего времени, результат изменится.C Программирование Результат программы изменяется с помощью функции времени (& start) <time.h>
Код результате которого изменился является:
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;
}
И код добавил я и вызвать проблемы ниже:
#include <time.h>
time_t start, end;
time(&start); time(&end);
И затем, символы, которые считываются с помощью вышеуказанного источника код изменен на непризнанный символ.
Вам следует научиться использовать отладчик (например, 'gdb' в Linux); вы должны скомпилировать с включенными предупреждениями и информацией об отладке (т. е. 'gcc -Wall -g' в Linux); и вы должны опубликовать весь свой код (ошибка, вероятно, в другом месте), если вы хотите, чтобы мы помогли. –
Если ничего другого, вызов 'feof' не имеет смысла; проверяйте '((c = getchar()) == EOF)' – Dave
Поскольку вы не показываете полный минимальный код, который воспроизводит проблему, мы ничего не можем сделать, кроме угадывания. В частности, вы не показываете, как определяется 'pcSeq', или как он инициализируется. Вы вполне можете найти, что вызов 'printf (« Hello World \ n »);' вместо 'time()' также изменяет вывод. –