Вопрос задан 05.07.2023 в 01:17. Предмет Информатика. Спрашивает Замура Екатерина.

С++. Написать программу, чтобы получить информацию о разделах жесткого диска, и о самом жестком

диске
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кудуманов Алдияр.
C++Выделить код
1
2
int disk_C_v_baitax = DiskSize(3);
int disk_D_v_baitax = DiskSize(4);
"за память"...
C++Выделить код
1
2
MEMORYSTATUS MemStat;
GlobalMemoryStatus(&MemStat);
и затем:
C++Выделить код
1
2
int Fiz_pamjatj = MemStat.dwTotalPhys;
int Virtual_pamjtj_dostupna = MemStat.dwAvailVirtuality;



Типо так
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для получения информации о разделах жесткого диска и о самом жестком диске в C++ вы можете использовать библиотеку Windows API (если вы работаете под Windows). Вот пример программы, которая демонстрирует, как получить такую информацию:

cpp
#include <iostream> #include <Windows.h> #include <winioctl.h> #include <sstream> // Функция для вывода ошибки void PrintError(const std::string &functionName) { DWORD error = GetLastError(); LPVOID errorMessage; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, nullptr, error, 0, reinterpret_cast<LPWSTR>(&errorMessage), 0, nullptr ); std::wcerr << functionName << " failed with error " << error << ": " << static_cast<const wchar_t *>(errorMessage) << std::endl; LocalFree(errorMessage); } int main() { DWORD bytesReturned; char buffer[1024]; // Получение информации о жестких дисках if (!DeviceIoControl( CreateFile( L"\\\\.\\PhysicalDrive0", // Номер жесткого диска (0 для первого диска) GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr ), IOCTL_DISK_GET_DRIVE_GEOMETRY, nullptr, 0, buffer, sizeof(buffer), &bytesReturned, nullptr )) { PrintError("DeviceIoControl"); return 1; } DISK_GEOMETRY_EX *diskGeometry = reinterpret_cast<DISK_GEOMETRY_EX *>(buffer); // Вывод информации о жестком диске std::wcout << "Жесткий диск информация:" << std::endl; std::wcout << "Тип диска: " << (diskGeometry->Geometry.MediaType == FixedMedia ? L"Жесткий диск" : L"Неизвестно") << std::endl; std::wcout << "Размер сектора: " << diskGeometry->Geometry.BytesPerSector << " байт" << std::endl; std::wcout << "Общий размер диска: " << diskGeometry->DiskSize.QuadPart / (1024 * 1024 * 1024) << " ГБ" << std::endl; return 0; }

Обратите внимание, что данный код работает только под Windows и требует прав администратора для доступа к физическому жесткому диску. Помимо этого, он использует Windows API для получения информации о диске. Если вы работаете на другой платформе, вам потребуется использовать другие библиотеки и API для получения аналогичной информации.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос