C++入門第一課

  1. c++優(yōu)點(diǎn)
  • 硬件執(zhí)行速度快
  • 軟件規(guī)模大、復(fù)雜度高的時(shí)候功能強(qiáng)大
  • 深入的圖像處理需/深度學(xué)習(xí)需要c++,雖然Python也行
  1. 一般組成部分
  • 預(yù)編譯指令
  • main函數(shù)


    結(jié)構(gòu)組成部分

如圖, "#" 代表預(yù)編譯指令, "include"代表需要包含庫(kù),"<>"代表先在標(biāo)準(zhǔn)庫(kù)里尋找當(dāng)前庫(kù),如果找不到就在當(dāng)前文件夾找
如果換成引號(hào),代表先在當(dāng)前文件夾尋找,找不到再去標(biāo)準(zhǔn)庫(kù)里尋找


結(jié)構(gòu)組成部分

看最簡(jiǎn)單的一段代碼

 #include <iostream>

  int main() 
 {
      std::cout << "Hello world!";
      return 0;
  }
  • main函數(shù)必須返回0
  • cout表示在控制臺(tái)打印輸出
  • std:: 表示后面的cout是在這個(gè)命名空間里的變量。 為了簡(jiǎn)便,命名空間也可以寫在最上面,這樣就不用每次在變量名前寫
#include <iostream>

 using namespace std;

 int main() 
{
     cout << "Hello world!";
     return 0;
 }
  • 向控制臺(tái)打印輸出
 int a = 3
 std::cout << "hello word";   // 輸出字符串需要加引號(hào)
 std:cout<< 3; // 輸出數(shù)字不加引號(hào)
 std::cout << a;  // 輸出變量
 std::cout << "我想輸出:" << a << "可以嗎?" << std::endl; // 連續(xù)輸出,endl表示換行
  1. 注釋
    分兩類:
  • 單行注釋 //
  • 多行注釋 /* */
  1. 代碼風(fēng)格
  1. 編譯
  • IDE內(nèi)置編譯器,eg: MAC的XCode
  • g++
    c++編譯與執(zhí)行
  1. 打印一下各個(gè)數(shù)據(jù)類型的默認(rèn)長(zhǎng)度,做個(gè)筆記


    數(shù)據(jù)類型默認(rèn)長(zhǎng)度(字節(jié))
  2. 定義常量,即不可改變的值, 用const

  • const int a = 1;
  1. 可以自定義有限值的枚舉類型
    //定義 MONTHS變量為枚舉數(shù)據(jù)類型,有后面12個(gè)值
    enum MONTHS {Jan, Feb, Mar, Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec};
    
    //定義變量 bestMonth為MONTHS這個(gè)枚舉類型
    MONTHS bestMonth;
    
    //此變量只能賦值為枚舉類型的值其中的一個(gè)
    bestMonth = Jan;

如果你賦的枚舉類型的值不是其中之一,那就會(huì)報(bào)錯(cuò)


報(bào)錯(cuò)
  1. 格式化

      • -n/std::endls 是換行
      • -t 代表tab鍵


        格式化
    1. 可以引入一個(gè)標(biāo)準(zhǔn)庫(kù)<iomanip>, 用setw(int n)來(lái)輸出空格寬度,n代表字符寬度


      setw
  2. 文件讀寫

  • 文件讀寫需要引入 <stream>標(biāo)準(zhǔn)庫(kù)
  • 定義一個(gè)文件流對(duì)象,將對(duì)象與文件關(guān)聯(lián)起來(lái),每個(gè)文件流類都定義了一個(gè)名為open的函數(shù),完成系統(tǒng)相關(guān)的操作,來(lái)定位給定的文件,并視情況打開為讀或?qū)懩J?/li>
  • 首先定義輸入流ifstream(讀)或者輸出流ofstream(寫),如果提供文件名,則open會(huì)自動(dòng)被調(diào)用
  • 樣例代碼:
    # include <iostream>
    # include <fstream>
    
    using namespace std;
    
    int main() {
    
      string line;
      ofstream myfileI ("another.txt");
    
      if(myfileI.is_open())
      {
        myfileI << "向末尾添加一行\(zhòng)n";
        myfileI << "向末尾添再加一行\(zhòng)n";
        myfileI.close();
      }
      else cout << "無(wú)法打開寫入權(quán)限的文件test.txt";
    
      ifstream myfileO ("another.txt");
      if(myfileO.is_open())
      {
          while (getline(myfileO, line)) {
            cout << line << endl;
          }
          myfileO.close();
      }
      else cout << "無(wú)法打開讀取權(quán)限的test.txt";
      return 0;
    
    }
    
  • 輸出結(jié)果
    向末尾添加一行
    向末尾添再加一行
    Program ended with exit code: 0
    
  1. 頭文件
  • 一般來(lái)講,c++程序可以包含自己寫庫(kù),一般后綴為.hpp,成為頭文件
  • 頭文件包含如何去做一個(gè)任務(wù)的計(jì)劃
  • 主程序包含將要去做的的信息
  • 舉例


    原來(lái)

    更改
更改
  1. 控制臺(tái)輸入用std::cin
  • 先定義好你要在控制臺(tái)輸入的變量的類型
  • 樣例代碼
 using namespace std;
 int main(){
    int year = 0;
    int age = 0;
    string name = " ";
    //print a message to the user
    std::cout<<"What year is your favorite? ";
    
    //get the user response and assign it to the variable year
    std::cin >> year;
    
    //output response to user
    std::cout<<"How interesting, your favorite year is "<<year<<"!\n";
    
    //print a message to the user
    std::cout<<"At what age did you learn to ride a bike? ";
    
    //get the user response and assign it to the variable age
    std::cin >> age;
    
    //output response to user
    std::cout<<"How interesting you learned to ride at "<<age<<"!\n";
    
    std::cout<<"What is your name? ";
    std::cin>>name;
    std::cout<<"Hello "<<name<<" !\n";
    return 0;
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容