This project presents the design and implementation of a command-line file editor written in C++.
The application allows users to open, view, edit, and save files in multiple formats, including hexadecimal, binary, and character representations.
👉 This project demonstrates low-level data manipulation and systems programming using modern C++.
- Open file → enter
1 - Enter filename (e.g.
test.txt) - Display hex → enter
2 - Display characters → enter
4 - Exit → enter
10
-
📂 Open and read binary files
-
🔍 Display file content in:
- Hexadecimal format
- Binary format
- Character format
-
✏️ Edit file data:
- Modify bytes in hex
- Modify bits in binary
- Modify characters directly
-
💾 Save modified files
-
⚠️ Error handling for invalid inputs and file operations
The application follows a modular design, separating responsibilities across components:
- FileManager → Handles file reading and writing
- Editing → Performs byte-level modifications
- DataDisplay → Displays file content in different formats
- UserInterface → Manages command-line interaction
This structure improves maintainability, scalability, and clarity.
file-editor-cpp/
│
├── src/ # Implementation files (.cpp)
├── include/ # Header files (.h)
├── results/ # Screenshots
├── CMakeLists.txt
└── README.md
git clone https://github.com/jessysutherns/file-editor-cpp.git
cd file-editor-cppmkdir build
cd build
cmake ..
cmake --build .Run:
cd Debug
FileEditor.exemkdir build
cd build
cmake ..
make
./FileEditor- File handling using binary streams
- Memory management with
std::vector<uint8_t> - Data representation (hex, binary, ASCII)
- Modular software architecture
- Command-line interface design
- C++ (C++17)
- CMake
- Standard Template Library (STL)
- Graphical user interface (GUI)
- Undo/redo functionality
- Search and replace features
- Support for large files and performance optimization
Jessica Sutherns https://github.com/jessysutherns
This project highlights fundamental systems programming skills, including:
- Low-level data manipulation
- File system interaction
- Structured software design
It demonstrates the ability to build efficient, modular, and functional C++ applications.

