gets()不允许首先执行cout

时间:2018-05-19 12:01:26

标签: c++ c++03 c++98

我目前正在使用'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

现在我得到一个编译文件exe文件test.exe,现在当我运行它时,它首先要求输入然后显示一条消息Enter Name:

请帮我解决这个问题,这是非常必要的。

注意:

  • 当我使用printf而不是cout时,它可以正常工作。

  • 当我替换我的陈述时 cout << " Enter Name: ";cout << " Enter Name: " << endl然后我也收到了我的消息,然后询问输入。

请不要建议我使用GCC编译器。

如果你指示我在我的stdio.h文件中进行更改以获得纠正以使功能正常工作或任何其他与修复此错误相关的头文件,我会很高兴。

1 个答案:

答案 0 :(得分:1)

您可以添加此代码

 cout << flush;

在使用cout << "Some Statement";之前   在直接方法中,您可以执行此操作cout << " Some Statement" << flush;,然后轻松使用gets()