C 语言的 gets 函数用于从标准输入设备 (stdin) 扫描或读取一行文本,并将其存储在字符串变量中。当读到换行符时,gets 函数将终止。
如何使用 C 语言编程中的 gets 从控制台读取字符串数据,以及 scanf 和 gets 之间的区别(附示例)。Gets 的基本语法如下所示。
char *gets(char *str)
或者我们可以简单地写成
gets(<variable name>)
C 语言编程中的 Gets 示例
gets 函数用于从控制台读取完整的字符集。这个程序将帮助你实际地理解这个 gets 函数。
提示:在使用此 Gets 函数之前,您必须包含 #include<stdio.h> 头文件。
#include <stdio.h>
int main()
{
char name[50];
printf("\n Please Enter your Full Name: \n");
gets(name);
printf("=============\n");
printf("%s", name);
return 0;
}
Please Enter your Full Name:
Tutorial Gateway
=============
Tutorial Gateway
第一个 printf 语句会要求用户输入任何名称或字符串,用户指定的字符串将被分配给字符数组 name[50]。
printf("\n Please Enter your Full Name: \n");
gets(name);
接下来,我们使用 编程 printf 语句来打印输出。
printf("%s", name);
C 语言编程中 scanf 和 gets 的区别
这个程序将帮助您理解 scanf 语句和 gets 函数在此编程中的区别。以及为什么在处理字符串数据时,我们通常更喜欢使用 gets 而不是 scanf。
// gets function & scanf difference example
#include <stdio.h>
int main()
{
char name[50];
printf("\n Please Enter your Full Name: \n");
scanf("%s", name);
//gets(name);
printf("\n=============\n");
printf("%s", name);
return 0;
}
Please Enter your Full Name:
Learn This Programming
=============
Learn
您可以观察到,尽管我们输入了 Learn This Programming 作为文本,但我们得到的输出是 Learn。这是因为 scanf 函数会将 Learn 视为一个值,This 视为另一个值,而 Programming 视为第三个值。下面的截图将向您证明这一点。

让我注释掉 scanf(“%s”, name); 语句,并使用 gets 函数从控制台读取文本。
// gets function & scanf difference example
#include <stdio.h>
int main()
{
char name[50];
printf("\n Please Enter your Full Name: \n");
//scanf("%s", name);
gets(name);
printf("\n=============\n");
printf("%s", name);
return 0;
}
Please Enter your Full Name:
Learn C Programming
=============
Learn C Programming
从上面的结果可以看出,我们得到了完整的文本,没有任何遗漏的字母。
评论已关闭。