我尝试制作一个程序来获取网站信息,然后将其提供给 system()
以启动网站。我知道像 (\, ",')
这样的字符不会直接输入输出,所以我使用了转义序列。
我写了这个程序,但命令提示符只是拒绝通过 C:\
路径。但是如果我复制粘贴程序显示的命令,Internet Explorer 就会启动。但我的程序并非如此。谁能告诉我哪里出错了?
这是我的代码:
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
cout<<"Please enter the website you wish to visit: ";
string website,web;
cin>>web;
web= " " + web;
website = "\"%ProgramFiles%\\Internet Explorer\\iexplore\""+web;
cout<<"\n"<<website<<endl<<endl<<endl;
system(website.c_str());
return 0;
}
最佳答案
您正在您的系统
命令行中使用环境变量%ProgramFiles%;这些特定于 MS-DOS 提示环境,通常在 system
实现中不可用。
我建议用完整路径替换它,例如\"C:\Program Files\Internet Explorer\iexplore\",看看是否可行。
如果可行,那么您的实现不会像完整的命令提示符那样隐式替换环境变量,因此您需要单独查询环境变量并在运行 system
之前构建路径.参见 getenv一种可能的方式(我不确定 mingw32 支持什么,所以您可能还有其他选择)。
如果这不能解决问题,我建议检查您是否可以启动更简单的程序,例如 notepad.exe,以验证没有任何东西干扰启动应用程序,例如您的环境路径或权限。
关于c++ - System() 函数,并从中调用 Internet Explorer,Dev C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35836828/