您好,登錄后才能下訂單哦!
問題01:如何垂直排列文本輸出,使其左對齊或右對齊
使用標(biāo)準(zhǔn)的流操作符來設(shè)置字段的寬度和對齊方式。一個操作符就是操作在流上的函數(shù),通過操作符<<將這些操作函數(shù)應(yīng)用到流上。
- #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:如何格式化輸出浮點數(shù)
使用<iomanip>和<ios>提供的標(biāo)準(zhǔn)操作來控制寫入流中的浮點數(shù)的格式。
- #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:如何復(fù)制文件
使用<fstream>中的C++文件流來把數(shù)據(jù)從一個流復(fù)制到另一個流。打開文件的方式在類ios中定義,常用的值如下:
>> ios::app:以追加的方式打開文件
>> ios::ate:文件打開后定位到文件尾,ios:app就包含有此屬性
>> ios::binary:以二進制方式打開文件,缺省的方式是文本方式。兩種方式的區(qū)別見前文
>> ios::in:文件以輸入方式打開
>> ios::out:文件以輸出方式打開
>> ios::nocreate:不建立文件,所以文件不存在時打開失敗
>> ios::noreplace:不覆蓋文件,所以打開文件時如果文件存在失敗
>> ios::trunc:如果文件存在,把文件長度設(shè)為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>中的標(biāo)準(zhǔn)C函數(shù)remove和rename。如果操作失敗,函數(shù)將返回非零值,并設(shè)置errno。你可以使用strerror來將錯誤信息輸出到cerr流中。
問題05:如何創(chuàng)建臨時文件
有兩種辦法可以用來創(chuàng)建一個臨時文件。聲明在<cstdio>中的tmpfile函數(shù)不帶任何參數(shù),并且成功后返回一個FILE*指針,不成功返回一個NULL。你可以使用C的輸入輸出函數(shù)fread、fwrite、fgets、fputs等來操作它。tmpfile使用"wb+"的方式打開文件,并在程序退出后,自動刪除該文件。
如果你需要一個具名的臨時文件,那么tmpnam可以滿足你的要求。tmpnam事實上不會產(chǎn)生一個臨時文件,它只是創(chuàng)建一個唯一的文件名,你可以用這個文件名來打開一個文件。tmpnam帶一個char*類型的參數(shù)并返回一個char*類型的值。你可以使用一個指向一個字符緩存的指針來傳遞它,但必須至少有L_tmpnam內(nèi)存,tmpnam將復(fù)制這個臨時的名字,并且返回一個指向這個緩存的指針。如果你傳遞一個NULL值的話,tmpfile將返回一個指向一個包含文件名的靜態(tài)緩存指針,也就意味著隨后的tmpnam調(diào)用將會改寫它。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。