1.a += 5;//a = a + 5;
其他的計算相近,這裏有的人說區分不開放在前面和放在後面的意義,其實這個單純地看做一個符號是最好的。和+無關,和=無關,和兩者的組合有關。
2.判斷語句if
if (word) {
std::cout << "It is a word.\n";
} else {
std::cout << "It isn't a word.\n";
}
如果僅爲一條結果語句也可以省略花括號
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) {
case 1995:
std::cout << "It's not.\n"
break;
case 1996:
std::cout << "It's not.\n"
break;
case 1997:
std::cout << "It's not.\n"
break;
case 1998:
std::cout << "It's.\n"
break;
}
注意,這裏的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) {
sum *= multiplier;
++multiplier;
}
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) {
sum *= (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.一次輸入兩個字符串,中間使用空格分開的
std::cin >> name >> number;
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::cin.clear();
std::cin.ignore(100, '\n');
std::cout << "Enter your age: ";
}
增加輸入的提示信息
std::cout << "Enter a number: [##.#] ";
19.字符串轉換爲數值類型
strtol(); //字符串——長整數
strtod(); //字符串——double浮點數
strtold(): //字符串——long double浮點數
20.數據輸出到文件——fstream庫
#include <fstream>
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::app); //std::ios::app的app爲append,意思爲追加。程序打開文件,然後在現有文件中增加更多的數據。
if (fileOutput.is_open()) {
fileOutput << name << "|" << age << "\n"; //向程序寫入名字|年齡
fileOutput.close();
}
在文件打開時,可以先創建ofstream類型的變量,在調用open()函數
std::ofstream fileOutput;
fileOutput.open("/mylife/filename.ext");
ios::nocreate; //如果不存在,就不創建
ios::noreplace; //如果存在,不要打開
fileOutput("name.txt",(std::ios:;app) | (std::ios::nocreate)); //同時使用多個標誌
21.
../ 代表當前目錄的父目錄;
./ 代表當前目錄。
22.
std::string line;
while (std::getline(flieInput, line, '|') ) {
} //getline()會一直讀到"|"(默認爲:換行符),存入line
std::string entireFile, line;
while (std::getline(flieInput, line) ) {
entireFile += line; //文件全部讀入大字符串
}
23.定義自己的函數
void max(); //void定義函數沒有返回值
int max(); //定義一個簡單的類型,這裏的空白()表示沒有輸入
函數原型定義在main()之前
#include statements
void max();
int main() {
}
void max() {
}
24.創建帶輸入參數的函數
void max (int num, int power); //每個參數都要聲明
void max (int num, int power = 5); //可以直接賦值,但是賦值項必須在可選參數之前