C++文件讀取,格式輸出 與STL相關


去重操作:

sort(vec.begin(),vec.end());

vec.erase(unique(vec.begin(), vec.end()), vec.end());

 

nth_element ( a , a + k, a + n)     需要#include<algorithm>

長度為n的數組,將第k小的數放在第k位[下標從0開始],並將比它小的放在它前面,比它大的放在它的后面

 

string.find()函數的用法

p = s.find(s1)  返回s1在s中出現的第一個位置的下標,若不存在,返回 -1

p = s.find(s1, x) 從下標x開始查找s1,返回出現的第一個位置的下標,若不存在,返回-1

 

全排列next_permutation      #include<algorithm>

while(next_permutation(str.begin(),str.end())    cout<<str<<endl;    //輸出全排列

 

字符串相關 

#include<sstream>  //用作各個類型之間的轉換

一次性用法:

string s1 = "-234", s2 = "1";     int a,b;

stringstream ss(s1);

ss >> a;

cout << a << endl;    //此時a為-234

多次使用:

stringstream ss;

ss << s1;    //把s1傳入到ss中

ss >> a;      //轉換成int型

cout << a << endl;

ss.clear();   //多次使用清空

ss << s2;

ss >> b;

cout << b << endl;

 

string s;

s.substr(start, length);  //返回的是從下標start開始,長度為length的字符串,若length超過邊界,或者為負數,則返回從start開始直到末尾;

 

#include<fstream>可以進行讀寫操作的頭文件

一般類型的文件

ifstream fin("FileName")可以只讀取文件內容

int a;

while(fin>>a)就可以不斷讀取數字,碰到空白符(換行、空格)則停止

ofstream in("FileName")可以寫文件內容,存在則覆蓋,否則新建

in<<a<<"\n" 表示寫入一個數字並換行

二進制文件的讀寫

ifstream fin("FileName",ios::binary)只打開二進制文件,ofstream則新建或覆蓋

讀取必須用fin.read((char *)(&a),sizeof(a))表示從文件中讀取一個整型數a出來,a處類型可以任意。

fin.write((char *)(&a),sizeof(a))則是將整形數a寫進二進制文件中,a處類型同上。

每次操作完,記得關閉文件。

 

格式控制

#include<iomanip>必要的頭文件

int a;

cout << right << setw(10) << setfill('C') << a;

表示右對齊,占10格,左邊不足的用C填充

double b;

cout << left << setiosflags(ios::fixed) << setw(8) << setprecision(4) << showpoint << b;

表示左對齊,顯示小數點后4位,占8格,setiosflags(ios::fixed)的用法是,保證4位小數,不足補0


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM