C语言(9)--获得缓存区中的输入数据、趣味转义字符
2015-09-02 15:02
441 查看
1.获得缓存区中的输入数据
第一次输入:A<空格>B<回车>
运行如下:
这是因为字符类型变量占一个字节,在利用getchar()时是逐个保存的,所以B只是被存储到缓存区中了,并没有被赋予程序中的变量。而c2的赋值是<空格>,空格的ASCII码值是32.
第二次输入:A<回车>
运行如下:
同样的道理c2被赋予<回车>,即转义字符'\n',所以在输出完c1后会换行,然后<空格>的ASCII码值是10。
第三次输入:ABCDE<回车>
运行如下:
这种输入多余的话,多余的数据存储在缓存区中,不会被调用,也不会影响前面数据的调用。
2.趣味转义字符
运行:
编译器不给力,只能先这样了。不过确实听到响了~~
附:
#include <stdio.h> int main() { char c1,c2; c1=getchar(); c2=getchar(); printf("%c %c\n",c1,c2); printf("%d %d\n",c1,c2); return 0; }
第一次输入:A<空格>B<回车>
运行如下:
这是因为字符类型变量占一个字节,在利用getchar()时是逐个保存的,所以B只是被存储到缓存区中了,并没有被赋予程序中的变量。而c2的赋值是<空格>,空格的ASCII码值是32.
第二次输入:A<回车>
运行如下:
同样的道理c2被赋予<回车>,即转义字符'\n',所以在输出完c1后会换行,然后<空格>的ASCII码值是10。
第三次输入:ABCDE<回车>
运行如下:
这种输入多余的话,多余的数据存储在缓存区中,不会被调用,也不会影响前面数据的调用。
2.趣味转义字符
#include <stdio.h> int main() { printf("笑脸:\001\n"); printf("红桃、黑桃:\003 \006\n"); printf("听个响:\a\n");//响铃报警 printf("换几行:a\12 b\n c\x0A d\n"); //转义字符'\n' 对应的ASCII码值是 10,'\12'是八进制表示 ,'\xA'是十六进制表示 printf("看字母:AB\n"); printf("再看字母:\101\102\n");//'A'对应八进制数101,'B'对应八进制数102 printf("再看字母:\101\b\102\n");//转义字符'\b'含义是:退格,将当前位置移到前一列 printf("还看字母:\101\r\102\n");//转义字符'\r'含义是:回车,将当前位置移到本行开头 return 0; }
运行:
编译器不给力,只能先这样了。不过确实听到响了~~
附:
相关文章推荐
- C++ 结构体和类的区别
- ls C语言实现
- C++模板的申明和定义
- C++读书笔记
- C++函数声明和定义深度解析
- C++内存管理
- c++10 Seattle Clang error
- C++ Builder XE8 安卓开发之使用ini文件保存数据
- C++中的头文件和源文件
- C/C++经典题解析
- 国外程序员整理的 C++ 资源大全
- 个人C++注释规范
- c语言中的字符数组与字符串
- C、C++和java中各种数据类型的长度
- C++11特性 - Smart Pointers 智能指针
- zk系列-c++下zookeeper使用实例
- C++11特性 - Smart Pointers 智能指针
- C 风格字符串,C++string类,MFC,CString类的区别。
- 数字组合
- C++类中包含string类型数据使用read和write实现文件读取和输出时遇到的问题