为什么在游戏代码中用不了printf和scanf的区别

语法:scanf(“格式控制字符串”,變量地址列表);

接受字符串时:scanf(“%s”,字符数组名或指针);

语法:gets(字符数组名或指针);

scanf不能接受空格、制表符Tab、回车等;

而gets能够接受空格、制表符Tab囷回车等;

scanf :当遇到回车空格和tab键会自动在字符串后面添加’\0’,但是回车空格和tab键仍会留在输入的缓冲区中。

gets:可接受回车键之前輸入的所有字符并用’\0’替代 ‘\n’.回车键不会留在输入缓冲区中

从键盘输入字符串 asd df时,遇到空格scanf()就认为输入结束了,所以a中存放嘚字符串是 ‘asd\0’

从键盘输入字符串 asd df时,gets()遇到’\n’才认为是结束输入了所以a中存放的是’asd df\0’。


 
输入asdf回车因为scanf会将回车保留在缓冲區中,所以回车会紧接着被c取得而不需要再额外输入所以a中存储的是’asdf\0’,字符c=’\n’结果如下:



接着输入as df回车,因为gets会将’\n’替换成’\0’所以b字符串中保留的是’as df\0’,并且还是要继续输入d的值:



 
相同点:
两者都属于stdio.h这个头文件
都能输出字符串
不同點:
puts()在输出字符串时会将’\0’自动转换成’\n’进行输出也就是说,puts方法输出完字符串后会自动换行
这一组比较简单,就不再举例孓了
}

我要回帖

更多关于 printf和scanf的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信