gets()与scanf(“%s”): ① gets遇回车时结束输入。也就是说,gets可以接受回车前的任何输入。 scanf不同,遇到回车、空格、制表符就结束输入。 eg. String a=”I am a student; 如果要一次性的接受全部的字符串,要用gets。 ② 输入结束后,gets的回车不会留在缓冲区;而scanf的空格、回车仍然会留在缓冲区。
1 终止条件不同。gets只有遇到\n时才会结束输入,而scanf遇到空格或制表符时,也会结束输入。 比如输入"test string\n"。 用gets得到的字符串为"test string", 二用scanf得到的是"test"。 2 终止后,对终止字符处理不同。 比如输入为"test\nabcd"。 执行gets后,\n不会留在缓冲区中,即这时调用getchar得到的字...
语法:gets(字符数组名或指针); 两者在接受字符串时: 1.不同点: scanf不能接受空格、制表符Tab、回车等; 而gets能够接受空格、制表符Tab和回车等; 2.相同点: 字符串接受结束后自动加'\0'。
读取数据后输入流还存在回车符操作动作。 gets(s)函数与scanf("%s:",&s)/* scanf("%s",s)*/相似,但不完全相同,使用scanf("%s",&s);函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。 void m...
其实用scanf("%s",);和gets();本质上没有什么区别,都是将字符数据输入到制定的内存单元中。假设定义有字符数组(C语言把字符串按字符数组处理)str[30],那么我们向里面输入字符就可以为:scanf("%s",str);gets(str);他们都可以这样输出:printf("%s",str);或者puts(str);注意:(1)使用scanf...
gets(s);是以回车作为字符串的结束 scanf("%s",s);是以空格、Tab、回车作为字符串的结束。所以,scanf("%s",s);不能输出包含空格的字符串。
get函数是从stdin读取一串字符,直到遇到回车符 而scanf函数读取遇到空白符就会终止,像 \n \t 空格都是空白符
C语言中,gets() 和scanf()的区别在于输入的字符串是否中间有空格:对于前者,只有遇到"\n"时才停止输入,而对于后者,出现"\n"或空格都停止输入……希望对您有帮助……
就输入字符串来说,用scanf一般用%s,而且用%s遇到空格它就认为你输入结束了,就是说scanf不能输入带有空格的字符串,gets比较方便能输入一行字符串,以回车键结束,puts和printf两者的区别在于puts的功能更单一,只能输出字符串,而printf可以根据给定的格式输出多种类型的数据。