假设文件能够正常打开,下面程序会把 Welcome 写入 log.txt 。
int main() {
ofstream fout("log.txt");
fout << "Welcome";
fout.close();
return 0;
}看到 ofstream 先定位到文件输出流,构造函数带文件名即打开文件,<< 运算符写入数据,close 确保缓冲区刷新。这类题通法就是逐行识别流对象、构造参数、写入操作、资源释放四要素,缺一不可。
选项 B 把正确代码判错,常见误区是以为 ofstream 不自动打开文件、以为少个 close 就写不出、或把流对象名当成错误。题干"假设文件能正常打开"已排除权限问题,绝对化表述"会把 Welcome 写入 log.txt"只要代码逻辑对就成立。
本题考查《GESP 考试大纲》四级"文件操作"模块中的文件输出流。命题人放这道题,就是要卡住那些只背过"fstream 有输入输出"却分不清 ofstream 专用于写、以为少个 close 就白写的考生。
看到 ofstream fout("log.txt"); 立刻反应:这是输出流对象,构造时已打开文件。fout << "Welcome"; 是流插入运算符,把字符串写入文件。fout.close(); 是关闭流,确保缓冲区数据落盘。三步齐全,逻辑无懈可击。