// Buffer.cpp #include "Buffer.h" using namespace std; void Buffer::display() const { int ix_stop_line = ix_top_line_ + window_height_; for (int i = ix_top_line_; i < ix_stop_line; ++i) { if (i <= v_lines_.size()) { if (i == ix_current_line_) cout << '>'; else cout << ' '; cout << std::setw(5) << i+1; if (i < v_lines_.size()) cout << " " << v_lines_[i]; } cout << '\n'; } } bool Buffer::open(const string & new_file_name) { std::ifstream file(new_file_name); if (!file) return false; v_lines_.clear(); string line; while (getline(file, line)) v_lines_.push_back(line); file_name_ = new_file_name; ix_current_line_ = ix_top_line_ = 0; return true; } bool Buffer::save(const string & new_file_name) { std::ofstream file(new_file_name); if (!file) return false; file_name_ = new_file_name; for (const string & line : v_lines_) file << line << endl; return true; }