freopen和ifstream
整个世界也许像一场巨大的连连看游戏
素不相识的两个人想要取得联系,不得不跨越各种障碍,消除,连线
也许望向天空可以解决拥塞问题
可不同的人,抬头拥有的是同一片天吗?
--序
区分freopen和fopen和ifstream最关键的一点,便是fopen是C的标准库中的函数,而ifstream是C++标准库中的函数,而freopen可以视为fopen的一个特例。
freopen的作用是重定向输入输出流,即stdin/stdout,可以重定向到文件中。
freopen("xxx", "r/w/r+/w+", stdin/stdout);
r代表read,而w代表write,朴素的速记法,代表设定的模式是r/w。
fopen是打开一个文件指针,通过文件指针访问文件中的元素。
freopen最为方便,因为是重定向,所以可以随意读写任何类型的元素。值得注意的是freopen第一个参数只接受char*类型,不接受string类型,因为是C的原生函数,并不会支持C++新的扩展类型。
ifstream是C++的设计,体现了C++流式读写的哲学,然而非常慢。与foepn用法相似,同为打开一个文件指针。
共有三种类型,ifstream,ofstream和fstream。
i代表input。
o代表output。
f代表file。
所以fstream可读也可写,需要指定模式。