📄 fname1.cpp
字号:
//: C14:FName1.cpp
// From Thinking in C++, 2nd Edition
// at http://www.BruceEckel.com
// (c) Bruce Eckel 1999
// Copyright notice in Copyright.txt
// An fstream with a file name
#include <iostream>
#include <fstream>
#include <strstream>
#include "../require.h"
using namespace std;
class FName1 {
ifstream File;
enum { bsize = 100 };
char buf[bsize];
ostrstream Name;
int nameset;
public:
FName1() : Name(buf, bsize), nameset(0) {}
FName1(const char* filename)
: File(filename), Name(buf, bsize) {
assure(File, filename);
Name << filename << ends;
nameset = 1;
}
const char* name() const { return buf; }
void name(const char* newname) {
if(nameset) return; // Don't overwrite
Name << newname << ends;
nameset = 1;
}
operator ifstream&() { return File; }
};
int main() {
FName1 file("FName1.cpp");
cout << file.name() << endl;
// Error: rdbuf() not a member:
//! cout << file.rdbuf() << endl;
} ///:~
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -