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可读也可写,需要指定模式。

posted @ 2021-04-13 00:09  我是脑瘫  阅读(713)  评论(0编辑  收藏  举报