C++学习笔记(一)

第一章 C++简单程序设计

那么以一段程序开头吧

//first.cpp
#include <iostream>
#include <vector>
//动态数组(malloc, new 在heap上分配空间)
//malloc = m(内存)+ alloc(分配)   //m(内存)--heap(堆)__stain(栈)
//vector 包含在<vector>中
using std::vector;
using std::cout;  //输出
using std::cin;   //输入
using std::endl;  //换行
int main()
{
    //类        对象
    vector<int> vi;
        //也可以直接写vector<int> vi(3);
        //定义并分配3个空间,就像C中的数组,vi[0],vi[1],vi[2]
    int i = 10;
    vi.push_back(i);   //push_bask()会先分配空间
    vi.push_back(100);
    vi.resize(3); //表示动态分配3个空间,所以下一条语句成立
    vi[2]=76;   //如果没有上一条的分配空间,这是不能直接用的
                //vi[2]只是个指针而没有空间

    for (int k(0); k < vi.size(); k++) {
        // k(0) 与 k=0等价; vi.zize()可以得到数组的daxiao
        cout << vi[k] << endl;
    }
}

这里提一下
类,泛型编程,容器
类包括 结构体类型,结构体变量(在C中都是简单的数据, 在C++中则可以是函数)
容器(container)包括了 Map(集合),Set(映射)

简单的文件操作

  1. 创建一个相应的文件流对象
  2. 打开文件,将操作文件绑定到该流上
  3. 进行文件操作
  4. 关闭文件

创建与打开文件可以用一条语句实现

ifstream ifs("hi.cpp");

那么写一段程序作为例子

//file.cpp
#include <iostream>
#include <string.h>
#include <fstream> //文件操作需要用到
using namespace std;
int main()
{
    ifstream ifs;
    ifs.open("file.cpp");  //打开文件,文件的具体位置要自己找,使用相对路径与绝对路径皆可
    //ifstream ifs("file.cpp");
    string line;
    getline(ifs, line);  //全局函数,从ifs读1行到line中

    cout << line << endl << endl;

    //将整个文件都打印到屏幕上
    int i(0);
    while (getline(ifs, line)) {
        cout << ++i << ": " << line << endl;
    }

    ifs.close();  //关闭文件
}

输入与输出都是对内存而言的,即
将内容读入内存——输入
将内容取出内存——输出

ifstream 与 ofstream 是两个类,分别用于输入和输出
要把内容写到文件中,只要使用以下代码

    ofstream ofs("copy.cpp");
    int j(0);
    while (getline(ifs,line)) {
        ofs << ++j << ": " << line << endl;
    }

在创建对象时,自动调用构造函数
超过对象的使用域时会调用析构函数,其中包含了文件关闭函数,因此有时候就不用调用close()函数了

既然以一段代码开头了,那么就以代码结尾吧

//file.cpp
#include <iostream>
#include <string.h>
#include <fstream> //文件操作需要用到
using namespace std;
int main()
{
    string name("Jiang");
    int age(20); //括号也是可以赋值的

    ofstream fout("person.ini");
    fout << name << "   " << age << endl;

    fout.close(); //若没有这条语句则一个文件同时有了两个流,会出错
    //{fout << name << "  " << age << endl;}//也可以用花括号规定fout的作用域

    cout << "after some days …" << endl;

    ifstream fin("person.ini");
    string newname;
    int newage;

    fin >> newname >> newage;
    cout << newname << "  " << newage << endl;
}

以上就是第一章的内容了
下一篇博客将会有与第一章内容相契合的三个小程序

第二章我们会讲到常量和引用

(内容大多源自老师讲课)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章