Как прочитать имя компьютера в с++?

Пользователь

от sylvester , в категории: C/C++ , год назад

Как прочитать имя компьютера в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kenya , год назад

@sylvester 

Для того чтобы прочитать имя компьютера в C++, можно использовать функцию gethostname из библиотеки <unistd.h>. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include 
#include 

int main() {
    char hostname[256];
    if (gethostname(hostname, sizeof(hostname)) == 0) {
        std::cout << "Имя компьютера: " << hostname << std::endl;
    } else {
        std::cerr << "Ошибка при получении имени компьютера." << std::endl;
    }
    return 0;
}


В этом примере мы используем массив символов hostname размером 256 байт для хранения имени компьютера. Функция gethostname копирует имя компьютера в этот массив и возвращает 0 в случае успеха. Если происходит ошибка, то возвращается -1, и мы выводим сообщение об ошибке на стандартный поток ошибок. Если операция выполнена успешно, мы выводим имя компьютера на стандартный поток вывода.

Пользователь

от cierra , 7 месяцев назад

@sylvester 

Кроме того, можно использовать стандартные библиотеки C++ (без использования <unistd.h>) для получения имени компьютера, как показано в следующем примере:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>

int main() {
    char computerName[MAX_COMPUTERNAME_LENGTH + 1];
    DWORD size = sizeof(computerName);
    
    if (GetComputerNameA(computerName, &size)) {
        std::cout << "Имя компьютера: " << computerName << std::endl;
    } else {
        std::cerr << "Ошибка при получении имени компьютера." << std::endl;
    }
    
    return 0;
}


В этом примере используем функцию GetComputerNameA из библиотеки Windows.h для получения имени компьютера. Передаем функции массив computerName для хранения имени и переменную size для размера этого массива. Функция вернет ненулевое значение в случае успеха, иначе выведет сообщение об ошибке.