C语言:当scanf语句中有转义字符时,你该这样输入
Posted 坚持不懈的大白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:当scanf语句中有转义字符时,你该这样输入相关的知识,希望对你有一定的参考价值。
最近在重新学习一下C语言的有关知识,突然发现现在来看过去所学的知识,自己的感受又有很大的不同,就拿输入语句scanf来说吧!看到CSDN问答上有一个关于scanf语句的问题,当时题主代码很简单,可是就是没有输出语句的打印,我也琢磨了很久,就是一直没有找到他的代码问题或者输入操作所在,直到今天重新学习一下C语言,眼前一亮,找到当时题主的问题所在了,于是写了这篇文章。
文章目录
1. 一个有关scanf输入语句的示例
前一段时间看到CSDN问答上有一个关于scanf输入语句的问题,具体实例小编已经记不清楚了,但是小编记得当时题主的问题,具体问题不好描述,还是看相关代码或者截图吧!
#include <stdio.h>
#include <stdlib.h>
int main()
int a;
scanf("%d\\n",&a);
printf("%d\\n",a);
system("pause");
return 0;
当时那位题主就是问为什么没有输出,如下:
上述图片中的操作位输入100,然后按键盘Enter多个,一直没有看到输出语句。
现在小编通过自己学习发现,上述输入语句要想执行成功,需要在输入100后面直接加\\n即可,如下:
如果是如下输入语句(两个变量),那情况又一样了。
#include <stdio.h>
#include <stdlib.h>
int main()
int a,b;
scanf("%d\\n%d\\n",&a,&b);
printf("%d,%d\\n",a,b);
system("pause");
return 0;
此时,如果输入语句位123\\n456\\n,那么结果就会有问题了。
可以发现变量b的值是不对的,此时应该这样输入,如下:
通过上述示例,小编觉得输入语句有这样的规定,如果在输入语句中出现转义字符,只有一个转义字符且出现在末尾,那么输入语句会把这个转义字符当成一个普通字符来看;如果出现在中间,那么输入语句会认为这个转义字符就是转义字符,直接输入即可,如下:
如果有多个转义字符,那么在中间的转义字符直接输入对应的操作(如\\n,点击键盘Enter)即可,在末尾的则输入转义字符本身即可(如\\n输入\\n),如下:
最后,再总结一下scanf语句,如果在“格式控制字符串”(指"%d%d"这些语句)中除了声明以外,还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。(如果其中有转义字符,那么在中间的转义字符直接点击相应的键盘操作即可,而在末尾的转义字符则输入转义字符本身即可[即\\n直接输入\\n,把\\n当成普通字符来看待即可,不要把它看成换行符号])。
2. 常见的转义字符
对了,为了方便读者了解还有哪些转义字符,小编把常用的转义字符用表格排列出来。
转义字符 | 字符值 |
---|---|
\\’ | 单撇号(') |
\\" | 双撇号(") |
\\? | 问号(?) |
\\\\ | 反斜线(\\) |
\\a | 警告(alert) |
\\b | 退格(backspace) |
\\f | 换页(form feed) |
\\n | 换行 |
\\r | 回车 |
\\t | 水平制表符 |
\\v | 垂直制表符 |
以上是关于C语言:当scanf语句中有转义字符时,你该这样输入的主要内容,如果未能解决你的问题,请参考以下文章
谁知道c语言的格式符,转义字符定义时的英文全拼,例如十进制d是decimal,谢了。有加分哦!