中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Cookbook系列之Cpp:數據流與文件

發布時間:2020-07-10 10:56:36 來源:網絡 閱讀:333 作者:zxn990 欄目:移動開發

問題01:如何垂直排列文本輸出,使其左對齊或右對齊

    使用標準的流操作符來設置字段的寬度和對齊方式。一個操作符就是操作在流上的函數,通過操作符<<將這些操作函數應用到流上。

  1. #include <iostream>
  2. #include <iomanip>                                                                
  3.                                                                                   
  4. using namespace std;                                                              
  5.                                                                                   
  6. int main()                                                                        
  7. {                                                                                 
  8.     ios_base::fmtflags flags = cout.flags();                                      
  9.     int width = 10;                                                               
  10.                                                                                   
  11.     cout << left                                                                  
  12.          << setw(width) << "Jim"                                                  
  13.          << setw(width) << "Tom"                                                  
  14.          << setw(width) << "Bill" << endl;                                        
  15.                                                                                   
  16.     cout << right                                                                 
  17.          << setfill('.')                                                          
  18.          << setw(width) << "Jim"                                                  
  19.          << setw(width) << "Tom"                                                  
  20.          << setw(width) << "Bill" << endl;                                        
  21.                                                                                   
  22.     return 0;                                                                     
  1. // output 
  2. Jim       Tom       Bill       
  3. .......Jim.......Tom......Bill 

問題02:如何格式化輸出浮點數

    使用<iomanip>和<ios>提供的標準操作來控制寫入流中的浮點數的格式。

  1. #include <iostream>
  2. #include <iomanip>                                                                
  3. #include <ios>                                                                    
  4.                                                                                   
  5. using namespace std;                                                              
  6.                                                                                   
  7. int main()                                                                        
  8. {                                                                                 
  9.     ios_base::fmtflags flags = cout.flags();                                      
  10.     double pi = 3.14159265;                                                       
  11.                                                                                   
  12.     cout << setprecision(5) << pi << endl;                                        
  13.                                                                                   
  14.     cout << fixed << showpos << setprecision(3) << pi << endl;                    
  15.                                                                                   
  16.     cout << scientific << noshowpos << pi << endl;                                
  17.                                                                                   
  18.     cout.flags(flags);                                                            
  19.                                                                                   
  20.     return 0;                                                                     
  1. // output 
  2. 3.1416 
  3. +3.142 
  4. 3.142e+00 

問題03:如何復制文件

    使用<fstream>中的C++文件流來把數據從一個流復制到另一個流。打開文件的方式在類ios中定義,常用的值如下:
>> ios::app:以追加的方式打開文件 
>> ios::ate:文件打開后定位到文件尾,ios:app就包含有此屬性 
>> ios::binary:以二進制方式打開文件,缺省的方式是文本方式。兩種方式的區別見前文 
>> ios::in:文件以輸入方式打開 
>> ios::out:文件以輸出方式打開 
>> ios::nocreate:不建立文件,所以文件不存在時打開失敗  
>> ios::noreplace:不覆蓋文件,所以打開文件時如果文件存在失敗 
>> ios::trunc:如果文件存在,把文件長度設為0 

  1. #include <fstream> 
  2.  
  3. using namespace std; 
  4.  
  5. int main() 
  6.     fstream in("/root/.bashrc", ios::binary | ios::in); 
  7.     fstream out("/tmp/bashrc", ios::binary | ios::out); 
  8.  
  9.     out << in.rdbuf(); 
  10.  
  11.     in.close(); 
  12.     out.close(); 
  13.  
  14.     return 0; 

問題04:如何刪除或重命名文件,并且這些操作是可移植的

    使用定義在<cstdio>中的標準C函數remove和rename。如果操作失敗,函數將返回非零值,并設置errno。你可以使用strerror來將錯誤信息輸出到cerr流中。

問題05:如何創建臨時文件

    有兩種辦法可以用來創建一個臨時文件。聲明在<cstdio>中的tmpfile函數不帶任何參數,并且成功后返回一個FILE*指針,不成功返回一個NULL。你可以使用C的輸入輸出函數fread、fwrite、fgets、fputs等來操作它。tmpfile使用"wb+"的方式打開文件,并在程序退出后,自動刪除該文件。

    如果你需要一個具名的臨時文件,那么tmpnam可以滿足你的要求。tmpnam事實上不會產生一個臨時文件,它只是創建一個唯一的文件名,你可以用這個文件名來打開一個文件。tmpnam帶一個char*類型的參數并返回一個char*類型的值。你可以使用一個指向一個字符緩存的指針來傳遞它,但必須至少有L_tmpnam內存,tmpnam將復制這個臨時的名字,并且返回一個指向這個緩存的指針。如果你傳遞一個NULL值的話,tmpfile將返回一個指向一個包含文件名的靜態緩存指針,也就意味著隨后的tmpnam調用將會改寫它。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

裕民县| 大渡口区| 新建县| 佛坪县| 福贡县| 大同县| 和静县| 九龙县| 阿克苏市| 津市市| 大丰市| 定结县| 寿宁县| 黔西县| 九台市| 突泉县| 沂源县| 英山县| 错那县| 芦溪县| 登封市| 浏阳市| 德江县| 康马县| 潼关县| 南充市| 平顶山市| 永安市| 孟州市| 新建县| 鸡东县| 辽宁省| 皋兰县| 木里| 沾益县| 宁远县| 怀仁县| 临夏市| 金昌市| 定边县| 淳安县|