在C语言中,使用FILE*对文件进行操作。当文件不存在时,如果采用w模式打开,文件会自动创建,第二个参数可以为:
如上图所示,只有当以w,w+,a,a+打开时,文件才会自动创建,而 r,r+则不能。
那么,在C++中又怎么样呢?
C++中,以fstream文件流的形式对文件进行操作。
上图只是对各种打开模式进行解释,并没有说明在何种情况下,文件会自动创建。经过我的实际编程测试,它的创建文件和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)也不行。
通过上面的说明,可以这么理解:当纯粹地读时,文件必须是存在的;当纯粹地写时,文件可以自动创建;当又读又写时,系统假设你先读,因此,文件也必须是存在的。