简单I/O 与数据表示
发布日期:2022-02-07 06:39:44 浏览次数:6 分类:技术文章

本文共 1890 字,大约阅读时间需要 6 分钟。

数据表示

顺便复习下数据类型吧

C中的基本数据类型有
* short,int ,long 系列
* unsigned 系列
* float, double, long double 系列
* char

在C++98标准中,上面的类型也一样存在

当然,又加入了两种新的数据类型
* 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更详细的用法上面还有

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方便一些
这里就不多讲了

8.一点小感想

自以为C++预习的还不错了

写起推送才发现自己还有好多不会
这里写图片描述
希望大家不要学我
这里写图片描述
但还是要继续学吧。


  1. c++98:c++一种比较旧的版本,现在比较新的是c++11,
    如果在g++编译器里用c++11 需要加一条指令
    -std=c++11

转载地址:https://blog.csdn.net/wyfwyf12321/article/details/54604302 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:gbd调试总结
下一篇:C++中的内存分配

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月09日 22时24分43秒