輸入:
讀入:a+b,a-b,a/b等,cin>>a>>charOperation>>b>>endl;
enum {
skipws = 0x0001, //跳過當天及后面所有連續的空白符。
left = 0x0002,
right = 0x0004,
internal = 0x0008,//在指定的域寬內數值的符號按左對齊、數值本身按右對齊輸出。
dec = 0x0010, //10
oct = 0x0020, //8
hex = 0x0040, //16
showbase= 0x0080, //8進制:0、16進制:0x ,10無。
showpoint= 0x0100,
uppercase= 0x0200,
showpos= 0x0400,
scientific= 0x0800,
fixed = 0x1000,
unitbuf = 0x2000,
stdio = 0x4000
};
//x3_1.cpp,指定格式的輸入輸出流的各種控制符的使用
#include <iostream>
#include <iomanip>
using namespace std;
void main()
{
int x=1000;
double y=1.23456789;
cout<<"默認x值:"<<x<<endl;
cout<<"十進制:"<<dec<<x<<endl; //dec oct hex 會一直作用。
cout<<"八進制:"<<oct<<x<<endl;
cout<<"十六進制:"<<hex<<x<<endl;
cout<<"十六進制(大寫字母):"<<hex<<uppercase<<x<<endl<<endl;
cout<<"默認y值(左對齊且有效數字位數為6):"<<y<<endl;
cout<<"寬度為10並右對齊:"<<setw(10)<<right<<y<<endl;
cout<<"寬度為8:"<<setw(8)<<y<<endl;
cout<<"寬度為4:"<<setw(4)<<y<<endl;
cout<<"用*號填充空位(10位寬度):"<<setfill('*')<<setw(10)<<y<<endl; //setw(int i) 只對緊隨的數據顯示有影響。控制多個數據要多個setw()method.
cout<<"設精度為3輸出y(不包括小數點):"<<setprecision(3)<<y<<endl; //setprecision(int i) 會一直作用
cout<<"設精度為8輸出y(不包括小數點):"<<setprecision(8)<<y<<endl;
cout<<"顯示正負號:"<<showpos<<y<<endl;
cout<<"用科學計數法表示y:"<<scientific<<y<<endl;
cout<<"用科學計數法表示y(控制E前數據的小數點后位數):"<<scientific
<<setprecision(3)<<y<<endl;
}
成 員 函 數 |
含 義 |
long setf(long _f); |
根據參數_f設置相應的格式化標志,返回當前的設置 |
long setf(long _l,long _f); |
取消_l的設置,根據_f設置格式化標志,返回當前的設置 |
long unsetf(long _f); |
根據參數_f取消相應的格式化標志,返回當前的設置 |
long flags(long _f); |
根據參數_f重新設置相應的格式化標志,返回當前的設置 |
long flags() const; |
返回當前用於I/O流控制的格式化標志設置 |
int width(int w); |
設置下一個數值的輸出域寬為w,返回為輸出上一個數值所設置的域寬 |
int width() const; |
返回當前的輸出域寬 |
char fill(char c); |
設置流中用於輸出數據的填充字符為c,返回此前設置的填充字符。系統預設置的填充字符為空格 |
char fill() const; |
返回當前使用的填充字符 |
int precision(int n); |
設置浮點數的輸出精度為n,返回此前設置的輸出精度。系統預設置的輸出精度為6 |
int precision() const; |
返回浮點數輸出精度,即輸出的有效數字的位數 |
文件流類:
定義后打開:void open(const char *filename, int mode,int prot=filebuf::openprot);
定義時打開:文件流類名 文件流對象名(const char *filename, int mode, int prot=filebuf::openprot);
枚 舉 常 量 |
含 義 |
ios::in |
打開文件進行讀操作 |
ios::out |
打開文件進行寫操作 |
ios::ate |
打開文件時文件指針定位到文件尾 |
ios::app |
添加模式,所有增加都在文件尾部進行 |
ios::trunc |
如果文件已存在則清空原文件 |
ios::binary |
二進制文件(非文本文件) |
在文件打開操作函數的參數里,文件路徑分隔符必須寫成'\\'。如果是多層路徑,每個隔符都必須使用雙反斜線。
(3)prot:文件的訪問方式,取值為:
0:普通文件
1:只讀文件
2:隱含文件
3:系統文件
默認值為0,表示對一個普通文件的訪問。
字符文件寫入、讀出文件。
寫入到文件:插入運算符“<<”。調用類中的成員函數put()。
讀出到內存:提取運算符“>>”。 調用類中的成員函數get()或get(char&)。成員函數getline(char* buffer, int len, char='\n')。
二進制寫入 讀出文件:
ofstreamoutput("student.dat",ios::binary); output.write((char *)&s,sizeof(s));
ifstreaminput("student.dat",ios::binary); input.read((char *)&s,sizeof(s));