什么是命令行参数?本人是c++菜鸟
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是命令行参数?本人是c++菜鸟相关的知识,希望对你有一定的参考价值。
参考技术A 可以通过在程序的main()函数中添加形式参数来接收程序在启动时从命令行中获得的各个命令行参数,包括:程序名称、路径、当前环境变量和用户指定参数等。命令行参数由启动程序截获并传递给main()。一个典型的命令行例子如:
Mycopy
srcFile
destFile
一个典型的main()例子如:
int
main(
int
argc,
char
*argv[
]
,
char
*envp[
]
);
argc
指示数组指针argv中包含的参数个数,该整数总是大于等于1。
argv
一个以NULL以为的字符串数组,存储用户输入的命令行参数。按照惯例,argv[0]为程序调用的命令,如c:\mycopy.exe;argv[1]为第一个命令行参数,直到argv[argc-1];argv[argc]总是NULL。
envp
存储执行当前程序的用户环境变量
#include<stdio.h>
int
main(int
argCount,char
*
argValue[],
char
*
envp[])
FILE*
srcFile
=
0,
*destFile
=0;
int
ch
=
0;
int
i
=
0;
if
(argCount
!=
3)
printf("Usage:%s
src-file-name
dest-file-name\n",argValue[0]);
else
if((srcFile
=
fopen(argValue[1],"r"))
==
0)
printf("Can
not
open
source
file\"%s\"!",argValue[1]);
else
if((destFile
=
fopen(argValue[2],"w"))
==0)
printf("Can
not
open
destination
file\"%s\"!",argValue[2]);
else
while((ch
=
fgetc(srcFile))!=
EOF)
fputc(ch,destFile);
printf("Successful
to
copy
a
file!\n");
fclose(srcFile);
fclose(destFile);
printf("%d
command
line
parameters
are
got
in
program
\n",argCount);
printf("All
command
line
parameters
are
list
here:\n");
while(envp[i]!=NULL)
printf("%s\n",argValue[i]);
i++;
i
=
0;
printf("The
variable
set
is
list
here:\n");
while(envp[i]!=NULL)
printf("%s\n",envp[i]);
i++;
return
0;
return
1;
粒子群算法MATLAB代码,怎么运行不行,高手们给我修改一下,本人是菜鸟!谢谢!
functionF=fitness(x)
F=(x(1)-17.3962)^2+(x(2)-17.2974)^2+(x(3)-17.6002)^2+(x(4)-18.3051)^2+(x(5)-19.4117)^2+(x(6)-20.9202)^2+(x(7)-22.8304)^2
>> [xm,fv]=LinwPSO(@fitness,100, 1.2,1.8,0.9992,0.0008,200,7)
%下面是主程序
%% 清空环境
clc
clear
%% 参数初始化
%粒子群算法中的两个参数
c1=1.2 ; %最大权重
c2=1.8; %最小权重
w1=0.9992; %学习因子1
w2=0.0008; %学习因子2
M=200; %最大迭代次数
D=7; %搜索空间维数(未知数个数)
N=100; %初始化群体个体数目
eps=10^(-5); %设置精度(在已知最小值时候用)
%------初始化种群的个体(可以在这里限定位置和速度的范围)------------
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置
v(i,j)=randn; %随机初始化速度
end
end
for i=1:N
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
pg=x(N,:); %Pg为全局最优
for i=1:(N-1)
if fitness(x(i,:))<fitness(pg)
pg=x(i,:);
end
end
for t=1:M
for i=1:N
w=wmax-(t-1)*(wmax-wmin)/(M-1); %权重线性递减
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:))<p(i)
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
if p(i)<fitness(pg)
pg=y(i,:);
end
end
end
xm=pg
fv=fitness(pg),
以上是关于什么是命令行参数?本人是c++菜鸟的主要内容,如果未能解决你的问题,请参考以下文章