gets() 不允许先执行 cout

gets() doesnot allow execution of cout first

本文关键字:执行 cout 不允许 gets      更新时间:2023-10-16

我目前正在使用'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 文件中进行更改以纠正 get 函数正常工作或任何其他与修复此错误相关的头文件,我将很高兴。

你可以添加这个代码,

cout << flush;

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