1、gets函数原型为: char *gets(char *str);这个函数只有一个参数。参数类型为 char* 型字符指针,也可以是一个一维数组首地址。
2、gets函数功能: 从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。
3、gets函数举例 1:# include <stdio.h>int main(void){ char str[40]; //一定要先将指针变量初始化 艘早祓胂char *string = string_1; printf("请输入字符串:"); gets(string); //也可以写成gets(string); printf("%s\n", string); system("pause"); return 0;}在这个例子中,我们向控制台输入了字符串“hello world !”,然后按回车结束输入。这里可以直接输入空格,不会被截断。而scanf函数会因空格、回车而截断。【注意】,这里gets函数会取出最后按下的换行符并丢弃。
4、gets函数举例 2:# include <stdio.h>int main(void){ char str[30]; char ch; printf("[1]请输入字符串:"); gets(str); printf("%s\n", str); printf("[2]请输入一个字符:"); scanf("%c", &ch); printf("ch = %c\n", ch); system("pause"); return 0;}这里演示使用gets函数进行输入缓冲区读取会把换行符丢弃,后面使用scanf函数不需要使用getchar函数清空缓冲区。
5、scanf函数举例 3:# include <stdio.h>int main(void){ c茑霁酌绡har str[30]; char ch; printf("[1]请输入字符串:"); scanf("%s",&str); printf("%s\n", str); printf("[2]请输入一个字符:"); //getchar(); scanf("%c", &ch); printf("ch = %c\n", ch); system("pause"); return 0;}这里演示使用scanf函数进行读取输入缓冲区,并不会丢弃换行符,再次输入需要使用getchar函数清空换行符,否则会直接将换行符赋予ch变量
6、scanf函数举例 3:# include <stdio.h>int main(void){ c茑霁酌绡har str[30]; char ch; printf("[1]请输入字符串:"); scanf("%s",&str); printf("%s\n", str); printf("[2]请输入一个字符:"); getchar(); scanf("%c", &ch); printf("ch = %c\n", ch); system("pause"); return 0;}这里演示如何使用getchar清除scanf函数残留的换行符