草庐IT

c++ - 缺少关于 "int main(int argc, char* argv[])"的知识

我是一名物理学家,通常我只想完成计算,这就是我真正需要的。不过我一直在用intmain(intargc,char*argv[])非常令人高兴的是二进制文件在我没想到的级别上变得灵活,即初始化变量~$./program.exeabc(a,bandcarenumbersinthiscase,notlettersok?)所以问题是*如何在不使用文件的情况下以这种方式(或其他方式)“解析”或“传输”事物?*示例:假设“a.exe”给出了一组“X-Y”点(就像在电子表格上一样),我要将其插入“b.exe”。或者说我使用bash/awk脚本来格式化“a.exe”的输出格式,以便在gnuplot上绘

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++ - "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++ - 在 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

c++ - 将 argv 保存为 vector 或字符串

我需要将所有参数保存到vector或类似的东西中。我不是程序员,所以我不知道该怎么做,但这就是我到目前为止所拥有的。我只想调用一个函数系统来传递所有参数。#include"stdafx.h"#include"iostream"#include"vector"#includeusingnamespacestd;intmain(intargc,char*argv[]){for(inti=1;i 最佳答案 ineedtosaveallargumentstoavectororsomething您可以使用vector的范围构造函数并传递适当的

c++ - `int main(int argc, char* argv<::>)` 如何成为 main 的有效签名?

这个问题在这里已经有了答案:Howisthisbracketless/bracelesscodevalid?[duplicate](4个答案)关闭7年前。我在网站上看到intmain(intargc,char*argv)也可以用作main的签名.令人惊讶的是,以下程序:intmain(intargc,char*argv){return0;}编译时会发出GCC中的任何警告以及clang。它还在C++中编译。那么,intmain(intargc,char*argv)是怎么回事?是main的有效签名?