草庐IT

c++ - 在 C++ 中解析 argc 和 argv

我想学习更多C++...通常我会创建一个for循环来解析argv,最后得到一堆C风格的字符串。我想在C++中做类似的事情,但最好不要从/proc/whatever中读取。起初,我尝试将C风格的字符串转换为C++风格的字符串,但没有结果......令人沮丧的是,SO上的每个人似乎都想知道如何走另一条路,这就是c_str()的用途.什么是好的C++方法来执行此操作(即解析argv)?另外,请注意,我正在寻找一个unix风格的答案,我见过的所有转换技术都与Windows有关,我完全不感兴趣。 最佳答案 我不确定我是否完全理解这个问题。我知

c++ - 用 int main(void) 编译失败; main(int argc, char *argv[]) 成功。为什么?

问题为什么编译具有intmain(void)main函数的程序与编译具有intmain(intargc,char*argv[])主函数,如果程序不使用命令行传递的参数?这个操作系统或编译器是特定的吗?我没有使用mingw和g++得到相同的结果(这很奇怪不是因为wingw是gcc的一个端口)。例子代码#include#include"SDL/SDL.h"intmain(void){return0;}编译命令g++test.cpp;#g++4.4.5i586-mingw32msvc-g++test.cpp;#mingw4.4.4错误(由第二个命令给出。)a(main.o):(.text+0

c++ - 将 argv 转换回单个字符串

我正在编写一个包装另一个进程的(Win32控制台)程序;它采用以下示例中的参数:runas.exeusernotepadfoo.txt即:runas解析user,然后运行notepad,传递剩余参数。我的问题是argv被分解成单独的参数,但是CreateProcessAsUser需要单个lpszCommandLine参数。构建此命令行可能并不像将argv与空格连接起来那么简单。有什么指点吗?这只是一个例子。我的第一个参数实际上不是用户名,其中可能有空格。这使得手动解析GetCommandLine的结果变得棘手。同样,argv的简单串联将不起作用,因为它需要处理原始参数被引用并且其中可能

c++ - 释放内存时堆损坏

我有一个类如下structCliHandler{CliHandler(intargc,char**argv);~CliHandler();intdoWork();intargc_;char**argv_;private:CliHandler(constCliHandler&){}CliHandler&operator=(constCliHandler&){}};//构造函数CliHandler::CliHandler(intargc,char**argv){//setcommandlineparametersargc_=argc;argv_=(char**)malloc(argc_*s

c++ - 将 std::vector<char*> 转换为 C 风格的参数 vector arv

我想准备一个老式的参数vector(argv)在函数中使用intexecve(constchar*filename,char*constargv[],char*constenvp[]);我用STL::vector类试过:std::stringarguments=std::string("arg1");std::vectorargv;charargument[128];strcpy(argument,arguments.c_str());argv.push_back(argument);argv.push_back('\0');//finishargvwithzero最后我将vector

c++ - "QApplication app(argc, argv)"试图做什么?

#include#include#include"qmlapplicationviewer.h"intmain(intargc,char**argv){QApplicationapp(argc,argv);QmlApplicationViewerviewer;viewer.setMainQmlFile("app/native/assets/main.qml");viewer.showFullScreen();returnapp.exec();}我的C++有点生疏了。有人可以向我解释一下“QApplicationapp(argc,argv)”试图做什么吗?它是否试图声明一个接受2个参数(

c++ - C 将参数作为空指针列表传递给从 LoadLibrary() 导入的函数

我遇到的问题是我想创建一个通用的命令行应用程序,该应用程序可用于加载库DLL,然后调用库DLL中的函数。函数名称在命令行上指定,参数也在实用程序命令行上提供。我可以从使用LoadLibrary()函数动态加载的DLL访问外部函数。加载库后,我可以使用GetProcAddress()获取指向该函数的指针。我想使用命令行上指定的参数调用该函数。我可以将void-pointer-list传递给由LoadLibrary()函数返回的函数指针,类似于下面的示例吗?为了简化示例代码,我删除了错误检查。有没有办法让这样的东西工作://SomewhereinanotherdllintDoStuff(i

c++ - 在 Eclipse 中使用 argc 和 argv?

我有一个工作程序,但现在我必须使用intargc和char*argv[]参数到main。每当我尝试这样做时,它都会给我无法保存的错误。有没有办法让argc和argv在Eclipse中工作? 最佳答案 我猜你的问题是当你通过eclipse执行它时,你不知道将参数传递给你的程序,不是吗?如果这是您想要的,请阅读以下内容。单击“项目->属性”,然后在“运行/调试设置”中单击“新建按钮”。选择C++应用程序。在这里你可以看到有4个选项卡,第二个选项卡称为“arguments”。在此选项卡中,您可以看到一个文本区域。在那里输入您的应用程序参数

c++ - 将 argv 复制到新数组中

我遇到以下代码的段错误。有人可以解释为什么吗?我希望能够将argv的内容复制到一个新数组中,我将其命名为rArray。#includeusingnamespacestd;intmain(intargc,char**argv){char**rArray;intnumRows=argc;cout程序输出:/a.outhelloworldYouhave3arguments:ARGVARRAY./a.outhelloworldCOPIEDARRAYSegmentationfault:11为什么会出现此错误?我该如何解决?编辑:我得到了一个修复,将char**rArray更改为stringrAr

php - $argv 在一个类中

我正在使用exec()来执行一个文件,但该文件在一个类中,我阅读了更多关于argv的内容,但它令人困惑。我需要让它在类里面工作。它说:Pleasenotethat,$argvand$argcneedtobedeclaredglobal,whiletryingtoaccesswithinaclassmethod在php.net上 最佳答案 这意味着argc/argv不是超全局的——它们只在PHP脚本的顶级上下文中可见,所以... 关于php-$argv在一个类中,我们在StackOverf