请问C++的程序中的开头有这些代码是什么意思?求详细的解释。

2024-05-19 05:48

1. 请问C++的程序中的开头有这些代码是什么意思?求详细的解释。

int main(int argc, char** argv)
这是对main函数的变形。
一般的main函数的格式为
int main()
这样的程序假设编译后产生的可执行文件是a.exe,那么执行的时候我们在命令行输入
a.exe
回车后程序就运行了。
但如果我们输入
a.exe -p 192.168.1.1
回车后程序也只是照常运行,在程序中运行时根本不知道我们在a.exe后面带了两个参数-p和192.168.1.1。

int main(int argc, char** argv)
这种格式的main函数就是来解决这个问题的。 这种程序编译后的可执行文件在运行时,程序中可以通过变量argc知道命令行上的参数个数(包括程序名和后面带的参数),比如输入
a.exe -p 192.168.1.1
回车后程序中变量argc的值是3,表示命令行上有程序名和2个附带参数。
如果我们想要知道程序名和后面的附带参数是什么字符串,我们就可以通过
argv[0]访问到程序名,argv[1]、argv[1]访问到后面的附带参数"-p"和"192.168.1.1" 

#include 
using namespace std;

int main(int argc, char** argv)
{
  cout << "argc=" << argc << endl;
  for(int i=0; i<argc; i++)
    cout << "argv[" << i << "]=" << argv[i] << endl; 
  return 0;
}

请问C++的程序中的开头有这些代码是什么意思?求详细的解释。

2. c语言代码求助,高手请进。

#include 
#include 
#include 
int main(int argc, char *argv[])   //argc 是参数个数,argv 是命令行参数
{

int nflag;
if (*++argv && !strcmp(*argv, "-n"))    
//指向下一个参数,并判断argv所指向的参数是否与“-n”相等,如果相等,执行以下程序

{
++argv;
nflag = 1;
}

else     //如果不相等
nflag = 0;



while (*argv)
{
printf("%s", *argv);    //打印该参数
if (*++argv) putchar(' ');   //指向下一个参数,并输出空格
}
//实际上while部分就是依次打印每个参数,中间用空格隔开


if (!nflag) putchar('\n');    //nflag=0时,输出换行


exit(0);   //正常退出程序

}

程序运行之前需要运行cmd进入命令提示符,将路径设置到该执行程序所在的文件夹,接下来输入参数,
格式是空格空格......
如程序名为1.exe,就输入 1.exe 参数1 参数2......参数n
则argc=n+1;argv[0]=“1.exe”;argv[1]=参数1......

3. 请问下面代码中,if(argc!=4) 起什么作用

从你的代码片段 加上编程经验来判断 argc!=4  意思应该是 当用户输入的参数个数不为四时引导用户输入

请问下面代码中,if(argc!=4) 起什么作用

4. 杭电OJ题2019总是PE错误,我的代码如下: #include <iostream> using namespace std; int main(int argc,c

PE的意思是格式错误,但结果全正确,这就好办多了~一般问题在于多/少打了一个空格/回车等等。对于这个题的问题是,比如输出是
1 2 3 4(回车)
但你在4和回车之间打了一个空格,造成了PE
具体解决方法自己想想吧,有思考才能有提高~ 

多废话一句,最后一个数既可能是原数列里的数,也有可能是新加进来的数,一定考虑清楚~

5. C++的argc和argv的问题 编译成功但是为什么双击运行报错 在cmd下却可以正常运行代码如下

这是由于你直接运行时,传入的参数只有一个,所以指针错误,访问了野指针。


修改后:

#include
int main(int argc, char *argv[]) 
{
    char *u = argv[1], *p = argv[2];
    int i;
    if(argc<2)// 这里判断一下就好了。

        return 0;
    for(i=1;i<argc;i++)
        printf("%s\n",argv[i]);
    printf("获取第1个参数是%s\n",u);
    printf("获取第2个参数是%s\n",p);
    return 0; 
}

C++的argc和argv的问题 编译成功但是为什么双击运行报错 在cmd下却可以正常运行代码如下

6. OPENCV里打开摄像头 为啥要用 if (argc ==1){………… return -2} 之类的东西 求解释(比如下边的代码)

argc == 1命令只有程序,没有输入文件,因此打开摄像头作为输入
argc == 2命令包含了输入文件,读取字符串argv[1]表示的文件作为输入

7. C语言错误 代码如下 #include<stdio.h> #include<string.h> int main(int argc,char **a...

Segmentation fault这句话的意思就是段错误,就是内存泄漏了,strcpy(&a.b[5],argv[1])这句话的意思就是把argv[1]拷贝到结构体a中的b字段的最后一个字符,而字符串的最后编译器都会加上'\0',你把argv[1]拷过去了,占用了'\0'的位置,当然会报段错啊.不理解的,可以继续追问.纯手打,望采纳!

C语言错误 代码如下 #include<stdio.h> #include<string.h> int main(int argc,char **a...

8. C++中argc argv[]是怎么用的,最好给出一个可以运行的例子。希望热心网友指出下面的代码哪里错误了。

argc是命令行参数数量,argv是参数
你可以运行test.exe a b试试看,这时argc为3.
最新文章
热门文章
推荐阅读