Вы передаете многосимвольный литерал вместо строкового литерала . Использование одинарных кавычек '...'
создает один char
, который является типом цифр c, который может быть переведен в int
, поэтому вы получаете сообщение об ошибке int
, передаваемой в где const char*
ожидается. system()
ожидает вместо строки C стиля с нулевым символом в конце, ie массив значений char
, заканчивающийся символом '\0'
. В форме строкового литерала вы вместо двойных кавычек "..."
создаете такой массив.
Вам необходимо заменить '
символов на "
. И затем вам также нужно экранировать внутренние "
символы, используя \
, например:
system("netsh interface show interface | findstr /C:\"Wi-Fi\" /C:\"Name\"");
В качестве альтернативы, в C ++ 11 и более поздних версиях вы можете использовать необработанный строковый литерал вместо этого, чтобы избежать экранирования внутренних "
символов:
system(R"(netsh interface show interface | findstr /C:"Wi-Fi" /C:"Name")");