2024-11-23 11:00:35 +00:00

107 lines
2.8 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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
*/
}