linux fstream open,fstream创建文件的问题

在C语言中,使用FILE*对文件进行操作。当文件不存在时,如果采用w模式打开,文件会自动创建,第二个参数可以为:

a4c26d1e5885305701be709a3d33442f.png

如上图所示,只有当以w,w+,a,a+打开时,文件才会自动创建,而 r,r+则不能。

那么,在C++中又怎么样呢?

C++中,以fstream文件流的形式对文件进行操作。

a4c26d1e5885305701be709a3d33442f.png

上图只是对各种打开模式进行解释,并没有说明在何种情况下,文件会自动创建。经过我的实际编程测试,它的创建文件和C语言类似,当只用in和out方式打开文件时,只有使用out,文件才会自动创建。

fstream file(“filename”, ios_base::out)或者file.open(“filename”,

ios_base::out)文件才能自动创建。

而使用fstream file(“filename”)或者file.open(“filename”)则不能创建文件,因此

fstream file(“filename”,

ios_base::out|ios_base::in)或者file.open(“filename”,

ios_base::out|ios_base::in)也不行。

通过上面的说明,可以这么理解:当纯粹地读时,文件必须是存在的;当纯粹地写时,文件可以自动创建;当又读又写时,系统假设你先读,因此,文件也必须是存在的。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部