您好,登錄后才能下訂單哦!
問題01:如何垂直排列文本輸出,使其左對齊或右對齊
使用標準的流操作符來設置字段的寬度和對齊方式。一個操作符就是操作在流上的函數,通過操作符<<將這些操作函數應用到流上。
- #include <iostream>
- #include <iomanip>
- using namespace std;
- int main()
- {
- ios_base::fmtflags flags = cout.flags();
- int width = 10;
- cout << left
- << setw(width) << "Jim"
- << setw(width) << "Tom"
- << setw(width) << "Bill" << endl;
- cout << right
- << setfill('.')
- << setw(width) << "Jim"
- << setw(width) << "Tom"
- << setw(width) << "Bill" << endl;
- return 0;
- }
- // output
- Jim Tom Bill
- .......Jim.......Tom......Bill
問題02:如何格式化輸出浮點數
使用<iomanip>和<ios>提供的標準操作來控制寫入流中的浮點數的格式。
- #include <iostream>
- #include <iomanip>
- #include <ios>
- using namespace std;
- int main()
- {
- ios_base::fmtflags flags = cout.flags();
- double pi = 3.14159265;
- cout << setprecision(5) << pi << endl;
- cout << fixed << showpos << setprecision(3) << pi << endl;
- cout << scientific << noshowpos << pi << endl;
- cout.flags(flags);
- return 0;
- }
- // output
- 3.1416
- +3.142
- 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
- #include <fstream>
- using namespace std;
- int main()
- {
- fstream in("/root/.bashrc", ios::binary | ios::in);
- fstream out("/tmp/bashrc", ios::binary | ios::out);
- out << in.rdbuf();
- in.close();
- out.close();
- 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調用將會改寫它。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。