標籤:觀察 對齊 const show eric 部分 簡寫 test tle
# include<iostream> //標頭檔的使用
using namespace std; //命名空間的使用
int main()
{
int a,b;
cin>>a>>b; //輸入
cout<<b<<a<<endl; //輸出 與 換行
return 0;
}
1、C++ 可以直接比較兩個字串的大小;
2、cout <<"asdsf"
"ashdj"; 類似於 asdsfashdj
3、
# include<iostream>
# include<string>
# include<vector>
# include<algorithm> //運用vector容器 要用這兩個標頭檔
using namespace std;
int main()
{
vector<string> v; //定義vector類的容器 v(用來裝字串)
for(;;)
{
string s; //聲明字串變數 s
getline(cin,s); //輸入 字串存放到s
if(s == "stop")
{
break;
}
v.push_back(s); //把s裡的字串存到v容器的底部
}
sort(v.begin(),v.end()); //對v的第一個到最後一個元素進行排序
for(int i=0;i<v.size();i++) /////v.size()表示v的大小
{
cout<<v[i]<<endl; //endl換行
}
return 0;
}
4、對於任何不為0的整數a、b 。 a%b = a - b*(a / b );
5、const int a = 7 等價於 const int a (7) a不可以通過賦值改變值的大小
6、運算環境下 布爾型值true 和 false 可自動轉化為 int類型 0 和 1 ; 邏輯環境下 任何非0算術值都會轉化為true 0轉化為false
7、使所有浮點值保留到小數點後十位
要用到 標頭檔 #include <iomanip> //要用到格式控制符時
語句 cout << fixed << setprecision (10)
cout<<setprecision(0)<<a<<endl; 保留整數部分
cout<<setprecision(1)<<a<<endl; 保留整數部分
cout<<setprecision(2)<<a<<endl; 保留一位小數
8、#include <iomanip>
這裡面iomanip的作用比較多:
主要是對cin,cout之類的一些操縱運運算元,比如setfill,setw,setbase,setprecision等等。它是I/O流量控制頭文
件,就像C裡面的格式化輸出一樣.以下是一些常見的控制函數的:
dec 置基數為10 相當於"%d"
hex 置基數為16 相當於"%X"
oct 置基數為8 相當於"%o"
setfill(c) 設填充字元為c
setprecision(n) 設顯示小數精度為n位
setw(n) 設域寬為n個字元
這個控制符的意思是保證輸出寬度為n。如:
cout<<setw(3)<<1<<setw(3)<<10<<setw(3)<<100; 輸出結果為
1 10100 (預設是靠右對齊)當輸出長度大於3時(<<1000),setw(3)不起作用。
setioflags(ios::fixed) 固定的浮點顯示
setioflags(ios::scientific) 指數表示
setiosflags(ios::left) 靠左對齊
setiosflags(ios::right) 靠右對齊
setiosflags(ios::skipws 忽略前置空白
setiosflags(ios::uppercase) 16進位數大寫輸出
setiosflags(ios::lowercase) 16進位小寫輸出
setiosflags(ios::showpoint) 強制顯示小數點
setiosflags(ios::showpos) 強制顯示符號
9、枚舉類型就相當於助記符,協助程式員記憶的。
10、
如果你想定義兩個具有同樣特性枚舉類型的變數那麼你可以用如下的兩種方式進行定義!
enum box{pencil,pen};
enum box box2;//或者簡寫成box box2;
再有一種就是在聲明的時候同時定義。
enum {pencil,pen}box,box2; //在聲明的同時進行定義!
枚舉變數中的枚舉元素系統是按照常量來處理的,故叫枚舉常量,他們是不能進行普通的算術賦值的,(pencil=1;)這樣的寫發是錯誤的,但是你可以在聲明的時候進行賦值操作!
如果你不進行元素賦值操作那麼元素將會被系統自動從0開始自動遞增的進行賦值操作,說到自動賦值,如果你只定義了第一個那麼系統將對下一個元素進行前一個元素的值加1操作
void main(void)
{
enum egg {a,b,c};
enum egg test; //在這裡你可以簡寫成egg test;
test = c; //對枚舉變數test進行賦予元素操作,這裡之所以叫賦元素操作不叫賦值操作就是為了讓大家明白枚舉變數是不能直接賦予算數值的,例如(test=1;)這樣的操作都是不被編譯器所接受的,正確的方式是先進行強制類型轉換例如(test = (enum egg) 0;)
在實際問題中,有些變數的取值被限定在一個有限的範圍內。例如,一個星期內只有七天,一年只有十二個月,一個班每周有六門課程等等。如果把這些量 說明為整型,字元型或其它類型顯然是不妥當的。為此,C語言提供了一種稱為“枚舉”的類型。在“枚舉”類型的定義中列舉出所有可能的取值,被說明為該“枚 舉”類型的變數取值不能超過定義的範圍。應該說明的是,枚舉類型是一種基礎資料型別 (Elementary Data Type),而不是一種構造類型,因為它不能再分解為任何基本類型。
枚舉值是常量,不是變數。不能在程式中用指派陳述式再對它賦值。
只能把枚舉值賦予枚舉變數
11、一般情況下else 與距離近的if 搭配
12、浮點數值只是近似值 比如0.1 實際上儲存為無限接近0.0999999999
13、switch 後的參數一定不能是浮點類型的
14、char ch;
cin>>ch;(會跳過white—space字元)
解決方案:運用cin.get(ch);
15、eof函數
eof是end of file 的縮寫,表示“檔案結束”。從輸入資料流讀取資料,如果到達檔案末尾(遇到檔案結束符),eof函數值為非零值(表示真),否則為0(表示假)
16、ignore函數
調用形式為cin.ignore(n,終止字元) 函數作用是跳過輸入資料流中n個字元,或在遇到指定的終止字元時提前結束(此時跳過包括終止字元在內的若干字元)。//可以取走不合適的值。
從輸入資料流(cin)中提取字元,提取的字元被忽略(ignore),不被使用。每拋棄一個字元,它都要計數和比較字元:如果計數值達到a或者被拋棄的字元是ch,則cin.ignore()函數執行終止;否則,它繼續等待。
它的一個常用功能就是用來清除以斷行符號結束的輸入緩衝區的內容,消除上一次輸入對下一次輸入的影響。
比如可以這麼用:
cin.ignore(1024,‘\n‘),通常把第一個參數設定得足夠大,這樣實際上總是只有第二個參數‘\n‘起作用,所以這一句就是把斷行符號(包括斷行符號)之前的所以字元從輸入緩衝(流)中清除出去。
cin.ignore(numeric_limits<std::streamsize>::max(),‘/n‘);//清除當前行
cin.ignore(numeric_limits<std::streamsize>::max()); //清除cin裡所有內容
不要被長長的名字嚇倒,numeric_limits<std::streamsize>::max()不過是climits標頭檔定義的流使用的最大值,你也可以用一個足夠大的整數代替它。
17、
cin.clear()、cin.sync()
cin.clear()是用來更改cin的狀態標示符的。
cin.sync()是用來清除緩衝區的資料流的。
如果標示符沒有改變那麼即使清除了資料流也無法輸入。所以兩個要聯合起來使用。
18、fail函數
調用形式為cin.fail()。輸出0,表明輸入資料流已恢複正常。輸出1,表面輸入資料流不正常(原本整型變數要提取整數 卻遇到字元型 所以會不正常)。cin.clear()會複位標誌
19、peek函數
調用形式為cin.peek() 觀察當前指標或輸入的值 用法if(cin.peek == 2)
學習C++的第一天