简单I/O 与数据表示
来源:互联网 发布:卢武铉在韩国名声知乎 编辑:程序博客网 时间:2024/05/21 04:23
数据表示
顺便复习下数据类型吧
C中的基本数据类型有
* short,int ,long 系列
* unsigned 系列
* float, double, long double 系列
* char
在C++981标准中,上面的类型也一样存在
当然,又加入了两种新的数据类型
* wchar_t(宽字符类型)
* bool(布尔类型)
c++11标准新加入了
* long long,unsigned long long
* char16_t
* char32_t
1. 几种新类型
wchar_t 宽字符类型
由于一般char只可以存储一个字节的字符
而现实中,汉字,韩文……都占据着两个字节
所以就有了这种类型
使用它的话,会扯到很多新函数……
就不写了
bool布尔类型
一个只占用一个字节的变量
它只有两个值
true
false
因此,
在以后我们写函数的时候,就可以
bool function (...){ ... return true;}
简单I/O
写到这才发现自己还有好多不会
1. cin效率低
在C中,我们常常用在stdio.h中的
scanf ,getchar ,gets, fgets输入
在C++中,我们的cin,同样能做到
而且能做的更好(不过,效率低……)
2. 只用cin
以前说过
用cin读取字符
将会一个不落的全部读下
连空白字符也不放置
而用cin读取其他的数据类型
则会自动跳过空白字符
3. cin的get成员函数
先放例子
cin.get();// # 1.char c = cin.get(); //# 2char d; // # 3cin.get(d);
- get()是cin的一个成员函数
因此我们可以用句点 . 来调用 - 上面三种使用方式,
都达到了一个相同的目的
:从键盘读取一个字符 - 第二第三种调用方式
则能够把读取的字符赋值给一个字符变量 - 注意:不会跳过空白字符
4. cin的getline成员函数
函数作用:
从标准输入设备键盘读取一串字符串,
并以指定的结束符结束。
使用方法
char s[40];cin.getline(s,40); # 1
- 先定义一个字符数组以存放数据
- 第一条语句,说明:
* 把数据读到s数组中
* 至多读40位
* 若读满40位,或者遇到换行符,
停止读取,不读取换行符 - 注意:
停止读取时,输入流中的换行符将会被丢弃
这里放一个网址,cin更详细的用法上面还有
http://blog.csdn.net/k346k346/article/details/48213811
5. 输出类型的选择
以前说过
cout和cin都能够自动处理不同类型的数据
那么问题就来了
下面有一个代码片段
int b = 2;int *p1 = &b;char *p2 = "acacac";cout << p1 ;cout << endl ;cout << p2 ;
p1 和 p2 都是指针
这下会输出什么东东呢?
这里,我们有两种方法可以显式地确定输出类型
* 常量后缀
* long 后缀为L
* unsigned 后缀为UL,或LU
* float 后缀F
* 大小写无关
* 强制类型转换
char * p = "acacac";cout << 100L;//输出long类型的100;cout << p;//输出字符串cout << (int *)p;//输出字符串的地址//输出100acacac0x488000
6. 输出进制的选择
我们其实可以
肆意输出各种进制的数
cout << oct;// 八进制cout << dec;// 十进制cout << hex;// 十六进制
使用方法是这样的:
在准备输出16进制的数前
先放一句:cout << hex;
这句话不会输出任何东西
但是会使后面的所有整数都输出为十六进制
而且效果是持续的,直到你换用其他进制
...//一些语句cout << hex;cout << 28 << " ";cout << 5454 << endl;cout << dec;cout << 28 << " ";cout << 5454 << endl;// 输出1c 154e28 5454
7. 简单格式化输出
看资料看着看着
发现还是printf方便一些
这里就不多讲了
http://www.cnblogs.com/walfud/articles/2047096.html
8.一点小感想
自以为C++预习的还不错了
写起推送才发现自己还有好多不会
希望大家不要学我
但还是要继续学吧。
- c++98:c++一种比较旧的版本,现在比较新的是c++11,
如果在g++编译器里用c++11 需要加一条指令-std=c++11
↩
- 简单I/O 与数据表示
- 数据块I/O:fread与fwrite
- I/O简单理解
- I/O端口 与 I/O内存
- 缓冲I/O与直接I/O
- I/O端口 与 I/O内存
- I/O端口与I/O内存
- 文件I/O与标准I/O
- 文件I/O与标准I/O
- I/O与逆向
- 文件与I/O
- 文件与I/O(-)
- 文件与I/O
- I/O与异常
- I/O与Exception
- 简单了解I/O复用
- 【Perl读书笔记】简单I\O
- 块数据I/O操作
- 放苹果
- 关于为什么要用 if cv2.waitKey(1) & 0xFF == ord('q'): break的解释
- 三维坐标变换
- 关于-Objc -all_load -force_load的流言终结贴
- 283. Move Zeroes
- 简单I/O 与数据表示
- flex-basis
- 对布局对象及其子控件进行操作
- Java考试题之九
- C++ 练习
- 删除数据库
- web开发中如何另辟后台进程
- op精密检波和绝对值电路分析
- Android-skin-support: 实现原理