C 從入門到工作 第二節 20180708

2021-08-21 07:11:17 字數 4622 閱讀 8084

1.a += 5;//a = a + 5;

其他的計算相近,這裡有的人說區分不開放在前面和放在後面的意義,其實這個單純地看做乙個符號是最好的。和+無關,和=無關,和兩者的組合有關。

2.判斷語句if

if (word) 

else

如果僅為一條結果語句也可以省略花括號

if (word) std::cout

<< "it is a word.\n";

但是不推薦這樣進行處理,因為這樣會造成後期**檢錯和**修改的不便。

3.三元操作符

w = ( (word % 2) == 0) ? 'y' : 'n'

;//偶數y,奇數n

這裡把值賦給了w,這裡也可以直接輸出

std::cout

<< ( (word % 2) == 0) ? 'y' : 'n';

這裡需要注意的是 == 和 = 的區別。

4.判斷語句,switch

switch (year)
注意,這裡的break是直接跳出該迴圈。

switch的限制是:它只能使用整數和char資料型別。

5.++,–

int a = 5;

a++;// 6

6.sizeof返回變數或者變數型別在該系統中的記憶體占用空間

std::cout

<< "size of float"

<< sizeof(float) << " byte(s).\n";

float w = 0.3;

std::cout

<< "size of w"

<< sizeof w << " byte(s).\n";

7.while只用當條件滿足時才停止。

while (multiplier <= num)
8.do while和while的區別在於,前者至少會執行一次迴圈體,後者可以一次都不執行。

9.我們儲存的資料能無限儲存麼?不能

我們在定義變數時都會提前宣告型別,也就是給分配記憶體,8位二進位制,16位二進位制,64位二進位制等等。

比如分配的空間範圍為0~65535,那麼65535+1=0,0-2=65534

10.for (宣告變數賦值變數;判斷是否滿足條件;在判斷之前執行該項一次)

for (int i =5, int j =8; (i+j) <= w; ++i,++j)
11.switch不區分大小寫的分支(因為使用者輸入大小寫都是有可能的)

case

'y':

case

'y':

std::cout

<< "ok!";

break;

12.輸入cin,輸出cout都是來自於iostream

因此需要在前面加上引入iostream

13.在switch的情況沒有滿足的case,那麼定義乙個default作為switch的結尾。

default:

std::cout

<< "nothing!\n";

break;

}

14.當使用者輸入資料時不會被一邊輸入一邊寫入,只會在回車鍵按下後,一次性傳送到c++程式中。

在多項輸入時,緩衝區的資料會對其他項造成影響。

std:

:cin

::ignore(5);

這裡是丟棄緩衝區的5個字元。

std:

:cin

::ignore(10, '\n');

這裡是丟棄10個字元或者直到遇到另乙個換行符。

std::cin::ignore(std::cin.gcount()+1);
刪除整個緩衝區

15.一次輸入兩個字串,中間使用空格分開的

16.讀入一整行文字

std::string input;

std::cout

<< "input something: ";

std::getline(std::cin, input);

直到換行符出現,輸入結束。

17.cin輸入的問題:

1.無法把乙個值賦值給乙個變數,程式仍然繼續執行。鍵盤輸入資料與獲得的變數不匹配,程式給出乙個錯誤的結果;

2.cin接收到資料才能執行,只是一直按回車鍵,程式將一直等在那裡。

if (std::cin.eof()) //到達檔案末尾,返回true;

if (std::cin.fail()) //cin無法工作,返回true;

if (std::cin.bad()) //遇到較為嚴重的原因,無法工作,返回true;

if (std::cin.good()) //上面情況沒發生,返回true;

18.當使用者輸入錯誤時,需要程式刪除一些緩衝資料,重新等待使用者鍵入。

int

age;

std::cout

<< "enter

your

age: ";

while (!(std

::cin >> age))

增加輸入的提示資訊

std::cout

<< "enter a number: [##.#] ";

19.字串轉換為數值型別

strtol(); //字串——長整數

strtod(); //字串——double浮點數

strtold()

: //字串——long double浮點數

20.資料輸出到檔案——fstream庫

#include 

std::ofstream fileoutput("filename"); //將fileoutput與檔案進行關聯。

filname的檔案格式:

絕對路徑:d:\\mylife\\filename.ext或/mylife/filename.ext

;相對路徑:../filename.ext或mylife\\filename.ext

;

檔案呼叫時不需要原檔案存在,可以直接生成。

fileoutput.close();//關閉檔案流
std:

:ofstream fileoutput("name.txt", std:

:ios::

:ios

:

if (fileoutput.is_open())
在檔案開啟時,可以先建立ofstream型別的變數,在呼叫open()函式

std::ofstream fileoutput;

fileoutput.open("/mylife/filename.ext");

ios:

:nocreate; //如果不存在,就不建立

ios:

:noreplace; //如果存在,不要開啟

fileoutput("name.txt",(std:

:ios

:ios

::nocreate)); //同時使用多個標誌

21.

../ 代表當前目錄的父目錄;

./ 代表當前目錄。

22.

std::string line;

while (std::getline(flieinput, line, '|') ) //getline()會一直讀到"|"(預設為:換行符),存入line

std::string entirefile, line;

while (std::getline(flieinput, line) )

23.定義自己的函式

void

max(); //void定義函式沒有返回值

intmax(); //定義乙個簡單的型別,這裡的空白()表示沒有輸入

函式原型定義在main()之前

#include statements

void

max();

int main()

void

max()

24.建立帶輸入引數的函式

void

max (int num, int power); //每個引數都要宣告

void

max (int num, int power = 5); //可以直接賦值,但是賦值項必須在可選引數之前

storm從入門到精通 第二節 基礎知識講解

topologies streams spouts bolts stream groupings reliability tasks workers configuration storm集群架構 nimbus和supervisor的關係就是傳統的主從關係,它們單獨都可以做成集群模式。zookeep...

PCL入門第二節2020 02 13

pcd v.7 point cloud data file format version 7 指定pcd的檔案版本 fields x y zrgb 指定點可以有的維度和字段的名稱。例如 fileds x y z xyz data size 444 4 指定每個維度的位元組大小 unsigned ch...

第二節 2 委託入門筆記

委託是乙個類,它定義了方法的型別,使得可以將方法當作另乙個方法的引數來進行傳遞。事件是一種特殊的委託。一丶委託的宣告 1 delegate delegate我們常用到的一種宣告 delegate至少0個引數,至多32個引數,可以無返回值,也可以指定返回值型別。例 public delegate in...