下列打开文件的表达式中,错误的是
A.ofstream ofile;ofilopen("C:\\vc\\abtxt",ios::binar;
B.fstream iofile;iofilopen("abtxt",ios::at;
C.ifstream ifile("C:\\vcXXabtxt");
D.couopen("C:\\vc\\abtxt",ios::binar;
参考答案:D
解析: 本题考核文件的I/O操作。流可以分为3类:输入流、输出流以及输入/输出流,相应地必须将流说明为ifstream、ofstream以及fstream类的对象。如,说明一个输入流对象:ifstream ifile;。说明了流对象后,可使用函数open()打开文件。文件的打开即是在流与文件之间建立一个连接。open()的函数原型为:void open(const char *filename,int mode,int port=filebuf::openprot);其中,filename是文件名字,它可包含路径说明。mode说明文件的打开模式。除了open()成员函数外,ifstream、ofstream以及fstream三类流的构造函数也可以打开文件,其参数同open()函数。例如:ifstream ifile("c:\\vc\\abc.txt");。打开的文件使用完毕后,必须使用close()函数将其关闭。close()函数也是流类的成员函数,它没有参数与返回值,其作用是将缓冲区的内容刷新并撤销流与文件之间的连接。当流对象的生存周期后,相应的析构函数也会将文件关闭。由此可知,A、B和C选项的表达式都是正确的。对于D选项,由于open函数并不是cout对象中的成员函数,所以对open的调用是非法的。