文件IO简易笔记
//file out
ofstream fout;
fout.open("filename.type");
ofstream fout("filename.type");
fout << data;
fout.close();
//file in
ifstream fin;
fin.open("filename.type");
ofstream fout("filename.type");
fin >> data;
fin.close();
奇怪用法
看到书上有这种用法,一时好奇。
数次尝试、编译之后,发现如果打印 cout<< cin 值的话,在我PC上都是同一个地址值。
推测应为cin这个函数的函数地址
while(cin)
{
...
}
cout 输出八进制、十进制、十六进制
//可以分别使用下列代码 指定输出数值进制类型
//制定后固定不变,需要再次指定复原
cout << oct;
cout << dec;
cout << hex;
cout 设置格式化输出
//float默认显示六位小数
cout.setf(ios_base::fixed, ios_base::floatfield)
//复原
cout.setf(ios_base::fixed, ios_base::fixed)
//设置输出bool
cout.setf(ios_base::fixed, ios_base::boolalpha)
//设置两位小数
cout.precision(2);
//setf方法会返回调用之前有效格式化状态,因此可以如下保存、恢复
ios_base::fmtflags initial;
initila = cout.setf(ios_base::boolalpha);
//恢复
cout.setf(initila);
获取输入
//getline() 遇到换行符将换行符替换为空字符
//get()将换行符保留在输入序列中
//char 数组字符串输入
cin.getline(array, size);
//str 字符串输入
geline(cin, str);
//get变体一与getline等同,但换行符留在输入缓冲中,使用时需编码跳过换行符
//下述两步骤可以并为:cin.get(array, size).get();
cin.get(array, size);
cin.get();
//读取单字符,忽略空格、换行符、制表符
cin.get(ch);
//读取单字符,不作忽略
ch = cin.get();
//get读取到空行后会阻断输入,可以使用clear恢复
cin.clear()
//cin读取,根据var类型 类型不对则返回错误, cin根据空格,制表符换行符来确定字符串结束
cin >> var
cin >> int
cin >> double
cin >> string
cin >> char