美文网首页
(二)基础篇--要点日记

(二)基础篇--要点日记

作者: 过年啦 | 来源:发表于2017-08-27 00:52 被阅读0次

浮点常量

在程序中使用浮点数,在默认情况下像2.2或者2.4E8这样子的浮点常量都是属于double类型的。但是如果希望常量是float类的,需要使用f或者F后缀。希望常量为long double类型的,使用l或者L后缀。示例如下:

1.234f // a float constant
2.45E20F// a float constant
2L // a long double constant

C风格字符串

C风格字符串使用一个char的数组进行字符串的存储。C风格字符串有一种特殊的性质:以空字符(null character)结尾,空字符被写作\0,其ASCII码为0,用来标记字符串的结尾。示例如下:

char a[4] = {'a','b','c','d'}; // not a string!
char b[4] = {‘a’,'b','c','\0'}; // a string!

这样初始化字符串显然是非常麻烦的,我们可以使用下面这样子的方法对字符换进行初始化:

char bird[6] = "bird" // 编译器会自动添加 ‘\0’并且把数组剩下的位置全部填充'/0'
char bird[] = "bird" // 编译器会自动计算大小

当使用键盘输入字符串的时候,C++会自动计算长度并且添加‘\0’,当然,你需要实现指明数组的长度,并且这个长度不能少于字符串长度+1(strlen(string)+1)。
由于在cin当中,会自动认为空格后者换行符是一个字符串结束的标志,所以当我们需要读取带有空格的字符串的时候需要使用cin.getline方法,示例如下:

#include <iostream>

int main()
{
    using namespace std;
    const int ArSize = 20;
    char name[ArSize];
    char universityName[ArSize];
    cout << "Enter your name" << endl;
    cin.getline(name, ArSize); // 把这一行读取到name数组当中,如果这行的字符不超过 ArSize-1 = 19 个
    cout << "Enter your university name" << endl;
    cin.getline(universityName, ArSize);
    cout << "You are " << name << ", and you are from " << universityName;
}

输出结果

Enter your name
Simon Feng
Enter your university name
SCUT
You are Simon Feng, and you are from SCUT

此外,还有一种进行输入的方式那就是cin.get()方法。
上面代码当中如果使用cin.get()方法进行输入,就会出现问题。因为,cin.getline()会自动丢弃输入队列当中的换行符,而cin.get()不会自动丢弃,所以我们要使用一个不带任何参数的get()方法先将换行符进行读取。

cin.get(name,ArSize); // read first line
cin.get(); // read newline
cin.get(universityName,ArSize); // read the second line
/**
也可以使用cin.get(name,ArSize).get();的方式去替换上面第一二行,因为cin.get()方法会返回一个cin的对象
**/

string类

string类的使用大家应该都明白,非常方便,和C风格字符串相比有以下的共同处:
1)可以使用C风格的字符串对象初始化string对象。
2)可以使用cin来将键盘的输入序列存储到string对象中。
3)可以使用cout来显示string对象。
4)可以使用数组表示的方法来访问存储在string对象当中的字符。
需要注意的是,不能将一个数组赋值给另外一个数组,但是可以将一个string对象赋值给另外一个string对象。数组需要使用strcpy和strcat函数。

strcpy(charr1, charr2); // copy charr2 to charr1
strcat(char1, charr2); // append contents if charr2 to charr1

union公共体

这个数据格式在我以前的印象当中基本上没有见过,所以在这里写一下。
共用体union是一种数据格式,它能够存储不同的数据类型,但是只能同时存储其中的一种类型。也就是说,结构体(struct)可以同时存储int、long和double,共用体只能存储int、long或者double。共用体的句法与结构相似,但是含义不同。
示例,输入

union one4all
{
    int int_val;
    long long_val;
    double double_val;
};
... // pass
 one4all pail;
    pail.int_val = 15; // store an int
    cout<< pail.int_val << "\n";
    cout<< pail.double_val << "\n";
    pail.double_val = 22.1;
    cout<< pail.int_val << "\n";
    cout<< pail.double_val << "\n";

输出

15
7.41098e-323
-1717986918
22.1

相关文章

  • (二)基础篇--要点日记

    浮点常量 在程序中使用浮点数,在默认情况下像2.2或者2.4E8这样子的浮点常量都是属于double类型的。但是如...

  • (一)基础篇--要点日记

    命名空间 使用namespace的时候有四种不同的访问方式的写法: 1)将using namespace std;...

  • 【思维导图】《愚公移山》1—八上第六单元

    一、《愚公移山》思维导图要点 二、文学常识 三、基础知识

  • Java面试通关要点汇总集

    Java面试通关要点汇总集 Java面试通关要点汇总集 声明 原著作者-梁老师(梁桂钊) 基础篇 基本功 面向对象...

  • 写日记

    今天我读到了一篇关于如何写日记的文章,我很是赞同。 他大体说了五方面的要点,有一个要点最令我印象深刻。我们在写日记...

  • 一房变两房

    我是369号星宝宝,正参加日记星球41期21天蜕变之旅。这是我的第007篇原创日记。 二宝家庭如何在现有基础上,一...

  • 《正面管教》第一章读后感

    【范范写日记第138篇】 2020.11.17 周二 阴 第二遍看《正面管教》​。有了看第一遍的基础,对全本书...

  • 2022-10-13 成功日记&感恩日记

    成功日记: 1.完成听课财富能量篇,知道了提高能量的两大要点:记录成功日记和感恩日记,今天把成功日记写起来。 2....

  • 我思故我学

    第4课 写作基础共学 1 学习写作基础: 今天关于写作基础共学课程的分量很重,需要逐个要点复盘,并在下一篇文章中付...

  • Hybrid APP - 混合式开发

    Hybrid APP基础篇(一)->什么是Hybrid App Hybrid APP基础篇(二)->Native、...

网友评论

      本文标题:(二)基础篇--要点日记

      本文链接:https://www.haomeiwen.com/subject/lwavdxtx.html