gets () не разрешает выполнение cout первым - PullRequest
0 голосов
/ 19 мая 2018

В настоящее время я использую 'Digital Mars C ++', так как мне нужен был Turbo C ++, такой как Синтаксис и 32-битная сборка exe, поэтому это и есть причина.

Теперь моя проблема заключается в том, что когда я пишу кодниже,

#include <iostream.h>
#include <stdio.h>
int main()
{
    char n[30];
    cout << "Enter Name: ";
    gets(n);
    return 0;
}

Затем я сохраняю этот файл, затем сохраняю этот файл как test.cpp.

Затем я открыл командную строку и набрал dmc test.cpp.

Теперь, когда я получил скомпилированный файл, исполняемый файл test.exe, теперь, когда я запускаю его, он сначала запрашивает ввод, а затем выводит сообщение Enter Name:.

Пожалуйста, помогите мне с этой проблемой, это действительно необходимо.

ПРИМЕЧАНИЕ:

  • , когда я использую printf вместо cout, все работает нормально.

  • и когда я заменяю свое утверждение cout << " Enter Name: "; с cout << " Enter Name: " << endl, затем я также получаю свое сообщение и затем спрашиваю ввод.

Пожалуйста, не предлагайте мне использовать компилятор GCC.

И я будурад, если вы укажете мне, где внести изменения в мой файл stdio.h, чтобы исправить, функция будет работать должным образом или любой другойЗаголовочный файл r, связанный с исправлением этой ошибки.

1 Ответ

0 голосов
/ 30 мая 2018

Вы можете добавить этот код,

 cout << flush;

непосредственно перед использованием cout << "Some Statement"; или . При прямом подходе вы можете сделать это cout << " Some Statement" << flush;, затем легко использовать gets().

...