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;
}

以上就是第一章的內容了
下一篇博客將會有與第一章內容相契合的三個小程序

第二章我們會講到常量和引用

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