注意:我目前在Windows 10中使用GCC编译器(通过MinGW),并使用GIT BASH执行此代码。如果我使用PowerShell或CMD,则不会发生此问题。
这是我的简单代码:
#include<stdio.h>
int main(){
char name[25];
printf("Enter your name: ");
gets(name);
puts("Hello!");
puts(name);
return 0;
}
预期输出:
Enter your name: <Shashank Rawat>
Hello!
Shashank Rawat
实际输出:
<Shashank Rawat>
Enter your name: Hello!
Shashank Rawat
(注意:<>中的文本是用户通过键盘输入的)
您可以看到,即使printf()在序列上方,gets()仍在printf()之前被调用。(如果我定义了各种gets(),则它们都在正常执行开始之前被调用scanf(“%s”,str))同样发生