輸入與輸出
- 輸入輸出是基於字節流的操作
- 面向過程輸入輸出: C函數庫,面向對線輸入輸出:I/O類庫
- 抽取:>> 插入:<<
cin >>x>>y;
cout<<x<<y;
面向控制檯的輸入/輸出
- 基於函數的控制檯I/O
//輸出
int putchar(int ch)
int puts(const char *p);
int printf( const char *format [,<參數列表>]);
//輸入
int getchar();
char* gets(char *p);
int scanf(const char *format [,<參數列表>]);
- 基於類庫的控制檯I/O
//輸出 cout cerr clog
const char *p ="abcd";
cout <<p; //abcd
cout << (void *)p; //字符串的首地址
//進行輸出格式控制
//輸入
cin>> x>>y>>endl;
- 對"<<"、">>" 的重載
面向文件的輸入/輸出
- 流式文件:文件看成一系列字節所構成的字節串
- 打開文件 – 操作文件 --關閉文件
- 數據的存儲方式:文本方式、二進制方式
- 基於函數庫的文件I/O
//輸出
int fputc(int c,FILE *stream);
int fprintf(FILE *stream ,const char *format [,argument] ...);
size_t fwrite(const void *buffer ,size_t size,size_t cout ,FILE *stream);
//輸入
int fgetc(FILE *stream);
int fscanf(FILE *stream ,const char *format [,argument ]...);
//讀寫操作的控制
"r+" "w+" "a+"
//隨機輸入/輸出
int fseek(FILE *stream,long offset,int origin);//指定位置
- 基於類庫的文件I/O
//輸出
ofstream out_file( <文件名>,<打開方式>);//直接方式
ofstream out_file;
out_file.open(<文件名>,<打開方式>);//間接方式
//輸出
ifstream in_file(<文件名>,<打開方式>);//直接方式
ifstream in_file;
in_file.open(<文件名>,<打開方式>);//間接方式
//I/O與隨機存取
istream::seekg();
ostream::seekp();
順序讀/寫
指定位置的隨機讀/寫
面向字符串變量的輸入輸出
文件–>內存(緩存區):buffer
基於I/O類庫的字符串變量I/O
- 動態擴充的內部緩衝(動態)
- 程序提供的緩存buf(靜態)