Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 03
diff options
context:
space:
mode:
Commit0a2f0420b9627cf18ad470f6fa1956fbd1ba2813 (patch)
Author
 Angel Dimitriev <angel_dimitriev@abv.bg>
2022-03-30 16:41:49 +0300
Committer
 GitHub <noreply@github.com>
2022-03-30 16:41:49 +0300
Files3f2755beed5849e2b399a79ecce7aac6e730504c /Sem. 03
Object-oriented_programming_FMI-0a2f0420b9627cf18ad470f6fa1956fbd1ba2813.tar
Object-oriented_programming_FMI-0a2f0420b9627cf18ad470f6fa1956fbd1ba2813.tar.gz
Object-oriented_programming_FMI-0a2f0420b9627cf18ad470f6fa1956fbd1ba2813.zip
Parentc91a5b3652044276fb183b2d0f2f520c77342f33 (diff)
Update README.md
1 files changed, 43 insertions, 0 deletions
-rw-r--r--Sem. 03/README.md43
diff --git a/Sem. 03/README.md b/Sem. 03/README.md
index 446c812..22d7f8d 100644
--- a/Sem. 03/README.md
+++ b/Sem. 03/README.md
@@ -165,3 +165,46 @@ int main()
**Задача 2:** Да се напише функция, която намира големината на файл.
**Задача 3:** Да се напише функция, която заменя всяко срещане на символ във файл с друг символ. Съдържанието на файла не трябва да се зарежда в паметта.
+
+**Задача 2**:
+
+Да се реализира програма за изглед и модификация на двоични файлове (hex viewer). При стартиране на програмата трябва да се въведе път до двоичен файл и да зареди съдържанието на файла в паметта. След като файлът се е заредил в паметта, трябва да поддържате следните операции:
+
+ - Преглед на файла (view) отпечатва байтовете на файла (в шестнайсетична бройна система). o След това да се отпечатат интерпретацията на байтовете като символи. Ако байтът отговаря на малка/голяма латинска буква, то да се отпечата символа. В противен случай да се отпечатва точка.
+ - Промяна на байт по индекс (change ).
+ - Премахване на последния байт (remove)
+ - Добавяне на байт в края (add ).
+ - Запазване на промените в същия файл (save)
+ - Запазване на промените в друг файл (save as )
+Нека имаме двоичен файл, myData.dat, който се е получил след изпълнението на следния
+c++ код:
+ ```c++
+int x = 25409;
+ofstream file(“myData.dat”, ios::binary); file.write( (const char*)&x, sizeof(x));
+```
+
+Да се реализира прост интерфейс, с който да се извикват написаните фунцкии през конзолата.
+
+**Пример** (входът от потребителя започва с '>'):
+
+ ```
+Enter a file path:
+> myData.dat
+File loaded successfully! Size: 4 bytes
+> view
+41 63 00 00
+A c . .
+>change 1 65
+Operation successfully executed!
+> view
+41 65 00 00
+A e . .
+> remove
+> view
+ 41 65 00
+ A e .
+ >save
+ File successfully saved
+```
+
+**Забележка:** Не се изисква поддържането на конзолен интерфейс. Можете само да реализирате функциите и да ги изпробвате в main функцията.