107 lines
2.8 KiB
C++
107 lines
2.8 KiB
C++
![]() |
#include <iostream>
|
|||
|
#include <fstream>
|
|||
|
using namespace std;
|
|||
|
|
|||
|
void c_io(); // c IO
|
|||
|
void stream_io(); // c++ 流IO
|
|||
|
void stream_fio(); // c++ 流文件IO
|
|||
|
|
|||
|
int main() {
|
|||
|
c_io();
|
|||
|
return 0;
|
|||
|
}
|
|||
|
|
|||
|
void c_io() {
|
|||
|
int i = 14;
|
|||
|
double d = 3.3;
|
|||
|
char c = 'e';
|
|||
|
const char * str = "Hello";
|
|||
|
|
|||
|
// scanf & printf
|
|||
|
// in
|
|||
|
scanf("%d %lf %c %s", &i, &d, &c, &str);
|
|||
|
|
|||
|
// out
|
|||
|
printf("%d---%3d---%x---%o \n", i, i, i, i); //int型
|
|||
|
printf("%3.3f \n", d); //double型
|
|||
|
printf("%c \n", c); //char
|
|||
|
printf("%s \n", str); //str
|
|||
|
printf("%p \n", i); //地址
|
|||
|
|
|||
|
c = getchar(); //读入一个char, 最快
|
|||
|
putchar();
|
|||
|
|
|||
|
fgets();
|
|||
|
}
|
|||
|
|
|||
|
void stream_io() {
|
|||
|
// ios::sync_with_stdio(false);cin.tie(0),cout.tie(0); 关闭缓冲加速
|
|||
|
|
|||
|
int i = 14;
|
|||
|
double d = 3.3;
|
|||
|
char c = 'e';
|
|||
|
const char * str = "Hello";
|
|||
|
|
|||
|
cin.get(c); //返回一个流引用
|
|||
|
c = cin.get(); //返回char,略快
|
|||
|
cin.get(str, 100, '\n'); //读入字符串
|
|||
|
|
|||
|
cin.width(10); //设置场宽
|
|||
|
}
|
|||
|
void stream_fio() {
|
|||
|
|
|||
|
//文件流的创建 打开 关闭
|
|||
|
fstream fin;
|
|||
|
fstream fout;
|
|||
|
|
|||
|
fin.open("in");
|
|||
|
fout.open("out");
|
|||
|
|
|||
|
fin.close();
|
|||
|
fout.close();
|
|||
|
/*
|
|||
|
open函数的原型如下:
|
|||
|
void open(char const *,int filemode,int =filebuf::openprot);
|
|||
|
它有3个参数,第1个是要打开的文件名,第2个是文件的打开方式,第3个是文件的保护方式,一般都使用默认值。
|
|||
|
第2个参数可以取如下所示的值:
|
|||
|
打开方式 解释
|
|||
|
ios::in 打开文件进行读操作,这种方式可避免删除现存文件的内容
|
|||
|
ios::out 打开文件进行写操作,这是默认模式
|
|||
|
ios::ate 打开一个已有的输入或输出文件并查找到文件尾开始
|
|||
|
ios::app 在文件尾追加方式写文件
|
|||
|
ios::binary 指定文件以二进制方式打开,默认为文本方式
|
|||
|
ios::trunc 如文件存在,将其长度截断为零并清除原有内容,如果文件存在先删除,再创建
|
|||
|
除ios_base::app方式之外,文件刚刚打开时当前读写位置的文件指针都定位于文件的开始位置,而ios_base::app使文件当前的写指针定位于文件尾
|
|||
|
|
|||
|
函数 功能
|
|||
|
bad() 如果进行非法操作,返回true,否则返回false
|
|||
|
clear() 设置内部错误状态,如果用缺省参量调用则清除所有错误位
|
|||
|
eof() 如果提取操作已经到达文件尾,则返回true,否则返回false
|
|||
|
good() 如果没有错误条件和没有设置文件结束标志,返回true,否则返回false
|
|||
|
fail() 与good相反,操作失败返回false,否则返回true
|
|||
|
is_open() 判定流对象是否成功地与文件关联,若是,返回true,否则返回false
|
|||
|
*/
|
|||
|
|
|||
|
// 二进制文件读写
|
|||
|
fin.write((char*)&data, sizeof data);
|
|||
|
fin.read((char*)&data, sizeof data);
|
|||
|
|
|||
|
/*
|
|||
|
随机存取
|
|||
|
seekg(pos,ios::);
|
|||
|
seekg(pos);
|
|||
|
seekp(pos,ios::);
|
|||
|
seekp(pos);
|
|||
|
|
|||
|
tellg();
|
|||
|
tellp();
|
|||
|
|
|||
|
文件位置
|
|||
|
ios::beg
|
|||
|
ios::cur
|
|||
|
ios::end
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
}
|