一、指代不同
1、scanf:是C语言中的一个输入函数。
2、gets:从标准输入设备读字符串函数。
二、读取方式不同
1、scanf:是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
2、gets:可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
三、数据流向不同
1、scanf:函数 scanf() 是从标准输入流stdin (标准输入设备,指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
2、gets:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
参考资料来源:百度百科-gets
参考资料来源:百度百科-scanf