printf (), похоже, работает не так, как ожидалось - PullRequest
0 голосов
/ 05 марта 2012

Printf () в следующем коде может работать некорректно на некоторых машинах (включая мою).

printf("\n number of factor %d\n", sum); 
fflush(stdout);
if(sum == 0) 
{   
   printf("\n The  number %d is prime", p);
} 

Код сначала печатает переменную `` sum '', а если сумма равна нулю, то печатает номер.второе printf заявление не печатается.Я что-то здесь упускаю?

1 Ответ

1 голос
/ 05 марта 2012

Вам не хватает новой строки в конце строки формата printf, или другой вызов fflush

пример того, почему fflush важен

// file exflu.c
#include <stdio.h>
#include <unistd.h>
int main(int argc, char**argv) {
   int i=0;
   printf ("without newline from %s", argv[0]);
   // add perhaps a fflush(stdout); here
   sleep(5);
   scanf ("%d", &i);
   printf(" i=%d\n", i);
   return 0;
}

Соблюдайте вышеуказанную программу с fflush и без; без него сообщение появляется через пять секунд (потому что scanf, вероятно, делает неявно fflush(NULL)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...