C语言-gets和scanf


gets(get string)

gets和scanf的区别

字符串的读入

gets可以直接读取包含空格的字符串;而scanf当读到空格等就停止读取

给字符变量赋值

gets可以传参的类型为:字符指针变量;字符数组

gets从输入缓冲区读入字符串存储到字符指针变量或字符数组所指向的内存空间

1
2
3
4
// 参数为字符指针
char str[30];
char * fp = str;
gets(fp)
1
2
3
// 参数为字符数组
char arr[10];
gets(arr)

是否清空本次输入的回车

gets会自动清除输入缓冲区的回车

scanf不会

案例:

1
2
3
4
5
6
7
8
9
10
11
main(){
char arr1[30];
char a;
scanf("%c", &a);
gets(arr1);
printf("%c\n", a);
printf("%s\n", arr1);
}
>>> a
>>> a
>>>
1
2
3
4
5
6
7
8
9
10
11
12
13
main(){
char arr1[30];
char a;
gets(arr1);
scanf("%c", &a);
printf("%s\n", arr1);
printf("%c\n", a);

}
>>> abcd
>>> a
>>> abcd
>>> a

使用getchar清除缓冲区的回车

scanf博客链接

C语言-printf和scanf

本文标题:C语言-gets和scanf

文章作者:TTYONG

发布时间:2020年08月28日 - 14:08

最后更新:2020年09月11日 - 15:09

原始链接:http://tianyong.fun/C%E8%AF%AD%E8%A8%80-gets%E5%92%8Cscanf.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%