gets() 不允许先执行法院
gets() doesnot allow execution of cout first
我目前正在使用 '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 文件中进行更改以纠正 gets 函数以正常工作或与修复此错误相关的任何此类其他头文件,我将非常高兴。
您可以添加此代码,
cout << flush;
就在使用之前 cout << "Some Statement";
或
在直接方法中,您可以这样做 cout << " Some Statement" << flush;
然后轻松使用 gets()
。
我目前正在使用 '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 文件中进行更改以纠正 gets 函数以正常工作或与修复此错误相关的任何此类其他头文件,我将非常高兴。
您可以添加此代码,
cout << flush;
就在使用之前 cout << "Some Statement";
或
在直接方法中,您可以这样做 cout << " Some Statement" << flush;
然后轻松使用 gets()
。