如何制作功能,以便我可以输入要打开的浏览器
How to make a function so I can type what browser I want to open?
我的代码怎么了?我正在尝试制作一个程序,您可以在其中输入要打开的浏览器。VC 在IF语句中保持强调相等的符号。
#include <iostream>
#include <Windows.h>
using namespace std;
void OpenBrowser(string browser) {
ShellExecuteA(NULL, "open", browser.c_str(), NULL, NULL, SW_MAXIMIZE);
}
int main() {
char a;
std::cout << "What is your favourite browser?n" << std::endl;
std::string input;
std::cin >> a;
if (a = "firefox") {
OpenBrowser("firefox");
}
else {
OpenBrowser("chrome");
}
system("pause");
return 0;
}
这是有关如何使用用户定义的函数打开浏览器的示例和呼叫Shellexecute的示例:
#include <iostream>
#include <Windows.h>
void openBrowser(const std::wstring& browser)
{
ShellExecute(0, NULL, browser.c_str(), NULL, NULL, SW_SHOW);
}
int main()
{
openBrowser(L"C:\Program Files\Mozilla Firefox\firefox.exe");
return 0;
}
在代码中需要注意两个主要错误。
-
在堆栈上分配变量
a
,请注意,这是一个char,这意味着您要求在堆栈上分配一个(可能是4个),以保存将是的变量输入。因此,要使变量能够容纳诸如" Firefox"或" Chrome"之类的字符串,我们将需要更多数据,以便于Instace,char a[MAX_PATH + 1];
-
所说的,
=
操作员将用指针分配给" Firefox"字符串,这将无法使用,这是有两个原因的,一个是char
类型无法保持指针由于大小,第二个原因是类型不相同(char
-输入和const char*
-" Firefox")。为此,如果我们将a
的类型更改为const char*
,则将=
更改为==
也不起作用,因为在这种情况下,您正在尝试在数据部分中的指针(" Firefox")和指向指向指针和向指针中检查到指针堆栈中的数据(变量a
),==
操作员将简单地检查指针是否相等,即指向内存中的同一位置。因此,解决此问题的简便方法是使用strcmp
,MSDN上的strcmp。
tl; dr:
#include <iostream>
#include <Windows.h>
using namespace std;
void OpenBrowser(string browser) {
ShellExecuteA(NULL, "open", browser.c_str(), NULL, NULL, SW_MAXIMIZE);
}
int main() {
char a[MAX_PATH + 1];
std::cout << "What is your favourite browser?n" << std::endl;
std::string input;
std::cin >> a;
if (!strcmp(a, "firefox")) {
OpenBrowser("firefox");
}
else {
OpenBrowser("chrome");
}
system("pause");
return 0;
}
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 正在尝试了解输入验证循环
- 读取文件并输入到矢量中
- C++如何通过用户输入删除列表元素
- 用c++从输入文件中读取另一行
- 读取文件的最后一行并输入到链接列表时出错
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- 用户定义函数中的指针和输入
- 如何在C++中检查2D数组中负值的输入验证
- 如何只允许用户输入正整数
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 如何制作功能,以便我可以输入要打开的浏览器
- 如何通过代码(例如Java)将键按输入发送到浏览器中
- 当在Web浏览器上输入某些内容时,可以创建条件