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")");
我正在尝试 运行 使用 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")");