你们要的魔鬼scanf来了咯

终于找到了我2018年写的问题薄啦~

太激动啦!!!

还是那么熟悉的C4droid~

那个时候刚上大一,啥也不知道,年轻莽撞,想法奇特很正常哈哈哈哈,现在来解决一下这个问题了如指掌啦~

参考我上一篇关于scanf的文章!!!

戳链接:scanf

在这里插入图片描述在这里插入图片描述

基本知识:

  • \n 是转义字符,转义字符是指,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,因此称为“转义”。比如 C 语言中,用“\n”来表示换行,“\r”表示回车,“\t”表示跳格等等,它们本身只是一个反斜杠和一个字母,但是却被赋予了特殊的意义。

  • 转义字符是不能在键盘上直接按照原样输出的,而是需要在键盘上输入功能键,换句话说,我直接输入\n不能解决换行的需求,这就是两个字符而已。我们键盘上的这个Enter属于回车换行,换行是光标从当前位置换到下一行;回车是光标从当前位置回到本行的行首;换行回车效果就是前面两个效果的叠加,也就是换到下一行,并回到行首。回车符是Carriage Return, C语言中是’\r’;换行符是Line Feed, C语言中是’\n’;回车换行符实际是两个字符, 就是\r\n。

  • \n 完全是两个字符了,\本身比较特殊,所以\n 表示输入字符\n。

  • \n是换行,在c中直接按回车键就可以了;\n是两个单独的字符\和n,即我们要输入字符\n。

基本解释:

  • 第一条,应该是需要键盘输入Enter键,即换行,但是我输入了\n,这就输入字符了,和后面的%d不匹配,结果就出现问题了。

  • 第二条,应该是需要键盘输入\n,即两个字符,但是我输入的\n,和\n不匹配,结果也出现问题了。

  • 第三条,没有问题。

  • 第四条,应该是需要键盘输入\n,即两个字符,但是我输入的换行,和\n不匹配,结果也出现问题了。

所以一个简单的scanf格式化输入,其实也包含着许多的知识,稍稍不注意,就会出现问题的。

发布了43 篇原创文章 · 获赞 52 · 访问量 5073

猜你喜欢

转载自blog.csdn.net/qq_43779149/article/details/105163991