Помогите разобраться в коде 2 программ

Тема в разделе "MS Visual C++", создана пользователем Milana, 20 апр 2008.

  1. Milana

    Milana Гость

    Вот код программ. Не могли бы вы, пожалуйста, написать, что делает каждая строка кода?

    [codebox]#include <iostream>
    #include <windows.h>

    using namespace std;

    void DiskInfo(int, LPTSTR);

    void main()
    {
    char buffer[MAX_PATH];
    char bufferDrive[256];
    char *pch = bufferDrive;
    int i;
    int a;

    GetCurrentDirectory(sizeof(buffer),(LPTSTR)buffer);
    cout << "Current directory: " <<endl <<buffer << endl << endl;
    GetSystemDirectory((LPTSTR)buffer,sizeof (buffer));
    cout << "System directory: " << endl << buffer<<endl << endl;
    GetWindowsDirectory((LPTSTR)buffer,sizeof(buffer));
    cout << "Windows directory: " << endl << buffer << endl << endl;
    cout << "------------------------------------------------------------------------------" << endl << endl;

    GetLogicalDriveStrings(sizeof(bufferDrive),(LPTSTR) bufferDrive);
    cout << " Available logical drives: " << endl << endl;
    i=1;
    while (*pch)
    {
    cout << i << " :" << pch << endl;
    pch = &pch[strlen(pch) + 1];
    i++;
    }
    cout << endl << "Enter the number of logical drive to see the info about it : ";
    cin >> a;
    DiskInfo(a,bufferDrive);
    getchar();
    getchar();
    }

    void DiskInfo(int a, LPTSTR bufferDriveF)
    {
    char *pchF = bufferDriveF;
    int gDriveType;
    char lpSectorsPerCluster[256];
    char lpBytesPerSector[256];
    char lpNumberOfFreeClusters[256];
    char lpTotalNumberOfClusters[256];

    int j=2;
    while (j<=a && *pchF)
    {
    pchF=&pchF[strlen(pchF)+1];
    j++;
    }
    cout << endl << "Information about " << pchF << " :" << endl << endl;
    cout << "Drive type: ";
    gDriveType=GetDriveType(pchF);
    switch (gDriveType)
    {
    case 0: cout << "Unknown type of device" << endl;break;
    case 1: cout << "This root directory doesn't exist" << endl;break;
    case 2: cout << "Drive is removable" << endl;break;
    case 3: cout << "Drive is fixed" << endl;break;
    case 4: cout << "Drive is remote" << endl;break;
    case 5: cout << "Drive is CD-ROM" << endl;break;
    case 6: cout << "Drive is RAM Disk" << endl;break;
    default: break;
    }
    GetDiskFreeSpace(pchF,
    (LPDWORD)lpSectorsPerCluster,
    (LPDWORD)lpBytesPerSector,
    (LPDWORD)lpNumberOfFreeClusters,
    (LPDWORD)lpTotalNumberOfClusters);
    cout << "SectorsPerCluster: " << lpSectorsPerCluster << endl;
    cout << "BytesPerSector: " << lpBytesPerSector << endl;
    cout << "NumberOfFreeClusters: " << lpNumberOfFreeClusters << endl;
    cout << "TotalNumberofClusters: " << lpTotalNumberOfClusters << endl;
    }[/quote]

     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Каждая строка кода работает. Откройте любой самоучитель на первой главе и многое станет понятнее
     
  3. biz

    biz Гость

    Да, а еще каждая строка кода выполняет определенную функцию!! Вот какой я умный {удалено модератором}...

    Итак, приступим...:

    [codebox]#include <iostream> // деректива препроцессора, подключающая к программе из файла iostream средства связи с библиотечными функциями потокового ввода-вывода
    #include <windows.h> // деректива бла бла бла.. ну тут понятно.

    using namespace std; // смысл этой {удалено модератором} я до сих пор так и не понял.....

    void DiskInfo(int, LPTSTR); // прототип функции с двумя параметрами нихрена не возвращающую..

    void main() // точка входа в программу...
    { // левая фигурная скобка
    char buffer[MAX_PATH]; // массив элементов типа char размером MAX_PATH
    char bufferDrive[256]; // массив элементов типа char размером 256
    char *pch = bufferDrive; // указатель типа char на переменную bufferDrive
    int i; // переменная типа int...
    int a; // {удалено модератором} еще одна переменная типа int

    GetCurrentDirectory(sizeof(buffer),(LPTSTR)buffer); // какая-то функция {удалено модератором}...
    cout << "Current directory: " <<endl <<buffer << endl << endl; // тут мы печатаем то {удалено модератором}, что получили из предидущей функции..., т.е. путь к текущей дериктории
    GetSystemDirectory((LPTSTR)buffer,sizeof (buffer)); // {удалено модератором}, опять функция...
    cout << "System directory: " << endl << buffer<<endl << endl; // выводим на экран путь к системной дериктории
    GetWindowsDirectory((LPTSTR)buffer,sizeof(buffer));
    cout << "Windows directory: " << endl << buffer << endl << endl; // выводим на экран путь к дериктории Windows
    cout << "------------------------------------------------------------------------------" << endl << endl; // тут мы вдаемся в национальную лигу писсимистов и тупо печатаем минусы (-)

    GetLogicalDriveStrings(sizeof(bufferDrive),(LPTSTR) bufferDrive); // берем какие-то строчки локального драйва..
    cout << " Available logical drives: " << endl << endl; // выводим сообщение о том что перед нашим взором щас откроется что-то невероятное..
    i=1; // записываем в переменную i значение 1, дальше идет точка с запятой - это означает.. {удалено модератором} не помню ну и буй с ней...
    while (*pch) // собственно начало цикла.. он продолжается до тех пор, пока указатель указывает на указанную переменную, которая пока еще не содержит 0 ('\0')
    { // и снова левая фигурная скобка...
    cout << i << " :" << pch << endl; // выводим на экран i, потом :, потом pch, потом конец строки.. ламеры обычно записывают его как endllll!!!
    pch = &pch[strlen(pch) + 1]; // странная на первый взгляд комбинация операторов.... интересно что бы она могла означать......
    i++; // мой любимый оператор, оператор инкремент) увеличивает значение переменной на единицу))
    } // всем известная правосторонняя фигурная скабка!..
    cout << endl << "Enter the number of logical drive to see the info about it : "; // программистъ явно страдал словесным поносым, в то время как пытался описать тут то, что хотел передать жестами.....
    cin >> a; // вводим с клавиатуры переменную 'a'
    DiskInfo(a,bufferDrive); // функция явно пытается что-то сотворить с жесткий диском... думаю ее надо заремировать...
    getchar(); // и вот наконец аццкый программер окончательно ввел нас в заблуждение, пытаясь запутать наше подсознание двумя непонятными на первый вхгляд функциями.... что же это!!?? подпрограммы вызова вредоносных объектов!!?? вопрос все еще остается под загадкой.........................
    getchar();
    }

    ...

    Всем удачи в освоении столь сильного, и как мне кажется очень простого языка программирования --- C++ !!!
    C вами был ваш любимый коментатор Антонио!![/codebox]
     
Загрузка...

Поделиться этой страницей