diff options
start from scratch
1 files changed, 0 insertions, 47 deletions
| -rw-r--r-- | Binary_files/GetStructsFromBinaryFile.cpp | 47 |
diff --git a/Binary_files/GetStructsFromBinaryFile.cpp b/Binary_files/GetStructsFromBinaryFile.cpp deleted file mode 100644 index 011629a..0000000 --- a/Binary_files/GetStructsFromBinaryFile.cpp +++ /dev/null @@ -1,47 +0,0 @@ -#include <iostream> -#include <fstream> -using namespace std; - -struct test -{ - char ch; - int num; -}; - -int GetFileSize(ifstream& ifs) -{ - ifs.seekg(0, std::ios::end); //отиваме в края на файла - int size = ifs.tellg(); //запазваме коя е текущата позиция(тя всъщност е и размерът на файла) - ifs.seekg(0, std::ios::beg); //връщаме се в началото на файла - return size; -//тази функция е хубаво да я извикваме преди да сме чели каквото и да е от файла, понеже ще се върнем в началото и ще загубим информация до къде сме стигнали с четенето -} - - -int main() -{ - std::ifstream inF("Structs.bat", std::ios::binary); - - if (!inF.is_open()) - return false; - - int fileSize = GetFileSize(inF); // взимаме големината на файла - int objectCount = fileSize / sizeof(test); // намираме броя на обектите записани във файла - - test* arr = new test[objectCount]; - - inF.read((char*)arr, fileSize); //директно ги четем в масива - - if (!inF) - { - cout << "Error occurred while reading from the file"; - return 1; - } - inF.close(); - - for (int i = 0; i < objectCount; i++) - cout << arr[i].ch << " " << arr[i].num << endl; - delete[] arr; - - return 0; -}
\ No newline at end of file |
