printf незадолго до задержки не работает в C

Microsoft дает некоторые достойные указания для того, когда использовать InvariantCulture свойство:

MSDN: CultureInfo. Свойство

InvariantCulture... приложение должно использовать инвариантную культуру только для процессов, которые требуют независимых от культуры результатов, таких как форматирование и парсинг данных, которые сохраняются в файл. В других случаях это приводит к результатам, которые могли бы быть лингвистически неправильными или культурно несоответствующими.

Соображения безопасности

, Если решение безопасности будет принято на основе результата сравнения строк или изменения случая, Ваше приложение должно использовать порядковое сравнение, которое игнорирует регистр вместо того, чтобы использовать InvariantCulture. [...]

Строковые операции

, Если Ваше приложение должно выполнить чувствительную к культуре строковую операцию, которая не затронута значением CurrentCulture, оно должно использовать метод, который принимает параметр CultureInfo. [...]

Сохраняющиеся Данные

свойство InvariantCulture полезно для того, чтобы хранить данные, которые не будут отображены непосредственно пользователям. Хранить данные в независимом от культуры формате гарантирует известный формат, который не изменяется. Когда пользователи от различных культур получают доступ к данным, они могут быть отформатированы соответственно на основе определенного пользователя. [...]

5
задан Jeremy Stein 27 October 2009 в 20:58
поделиться

5 ответов

стандартный вывод не сбрасывается, пока вы не выведете символ '\ n'.

попробуйте printf ("привет, мир \ n");

10
ответ дан 18 December 2019 в 05:23
поделиться

Обычно стандартный вывод буферизуется до тех пор, пока вы не:

  • выведете \ n символ
  • вызов fflush (stdout)

Сделайте одно перед вызовом delay () , и вы должны увидеть свой результат.

8
ответ дан 18 December 2019 в 05:23
поделиться

printf буферизует вывод, пока не будет выведена новая строка.

Добавьте fflush (stdout); для очистки буферов по запросу.

20
ответ дан 18 December 2019 в 05:23
поделиться

Когда вы вызываете printf, вы ничего не печатаете до тех пор, пока это действительно не понадобится: либо пока буфер не заполнится, либо вы не добавите новую строку. Или вы явно сбрасываете его.

Таким образом, вы можете сделать

printf("Something\n");
delay();

или

printf("Something");
fflush(stdout);
delay();
1
ответ дан 18 December 2019 в 05:23
поделиться

Технически это не должно даже компилироваться. В вызове delay ("sleep 3") вы пытаетесь преобразовать const char * в float . Это должно быть:

void delay (float sec)
{
    // ...
}

delay(3);
-1
ответ дан 18 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: