error: invalid conversion from 'int' to 'const char*' [-fpermissive] with a system command line

error: invalid conversion from 'int' to 'const char*' [-fpermissive] with a system command line

我正在尝试 运行 使用 C++ 中的 system() 函数的 netsh 命令。

这是我的代码:

#include<iostream> // cin / cout
#include<stdlib.h> // system()
using namespace std;

int main(){

    system('netsh interface show interface | findstr /C:"Wi-Fi" /C:"Name"');

}

我想我需要在 'netsh 之前添加一些东西来解决这个错误,但我不知道是什么字符,我已经尝试了:system(L'netsh interface show interface | findstr /C:"Wi-Fi" /C:"Name"'); 但没有成功,

您正在传递 multi-character literal instead of a string literal。使用单引号 '...' 创建单个 char,这是一种可以提升为 int 的数字类型,这就是为什么您会收到有关 int 的错误的原因在预期 const char* 的地方传递。 system() 需要一个以 null 结尾的 C 风格字符串,即以 '[=19=]' 字符结尾的 char 值数组。在字符串文字形式中,您使用双引号 "..." 来创建这样的数组。

您需要将 ' 个字符替换为 "。然后你还需要使用\转义内部"字符,例如:

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")");