最近在重新学习一下C语言的有关知识,突然发现现在来看过去所学的知识,自己的感受又有很大的不同,就拿输入语句scanf来说吧!看到CSDN问答上有一个关于scanf语句的问题,当时题主代码很简单,可是就是没有输出语句的打印,我也琢磨了很久,就是一直没有找到他的代码问题或者输入操作所在,直到今天重新学习一下C语言,眼前一亮,找到当时题主的问题所在了,于是写了这篇文章。
文章目录
- 1. 一个有关scanf输入语句的示例
- 2. 常见的转义字符
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 | 垂直制表符 |