|
平时写代码,main函数有两参数int argc和char argv,但是没看到参数在函数中使用,现在碰到了一段代码,用到了argc和argv,以前也是碰到过相应的资料,main函数第一个参数传递的是路径,但是第二第三参数,剩下的参数怎么确定的?现在有一段代码如下:
#include <Windows.h>
#include <stdio.h>
int main(int argc, PCHAR argv[])
{
if (0 == lstrcmp(L"-d", (LPCWSTR)argv[1]) && argc == 3) ////-d参数,删除文件。
{
if (!DeleteFile((LPCWSTR)argv[2])) { printf("删除文件错误:%x\n", GetLastError()); }
else { printf("删除成功!\n"); }
}
else if (0 == lstrcmp(L"-m", (LPCWSTR)argv[1]) && argc == 4) //-c参数,复制文件。如果文件存在,询问用户是否覆盖
{
if (!MoveFile((LPCWSTR)argv[2], (LPCWSTR)argv[3])) { printf("移动文件错误:%d\n", GetLastError()); }
else { printf("移动文件成功!\n"); }
}
else{ printf("参数错误!\n"); }
}
为了好看,调整了格式。主要问题是:代码中用到的argc和argv怎么理解?argc和argv在前面都没有赋值,怎么就能argc==3运算?
argc 是命令行参数的个数
argv[] 参数列表
其中argv[0] 是程序路径
vs 可以在 属性-> 调试 ->命令参数 里添加 , 用空格分隔每个参数 ,这里输入的就是 argv[1]以及之后的参数
或者直接用cmd运行程序 : 程序名 + 空格 + 参数1 + 空格 +参数2......
程序会自动统计参数的总个数作为argc传入
|
上一篇: 俺就问一下有什么方法就是像搭建服务器一样分享本地的html(文件?)下一篇: 如何获取文件图标
|