问个简单的C++问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 01:09:42
int main (int argc, char *argv[]) {

if (argc != 2) {
cerr << "Usage: " << argv[0] << " data-file\n";
return EXIT_FAILURE;
}

string file = argv[1];

}

我想问下 这个file 内容是什么 ARGV具体指什么 我知道主函数参数是 工程-设置-调试里面输入的 难道file 就是我输入的参数吗 如果我想将FILE跟一个TXT文件文件起来应该怎么设置啊 前提是上面的代码不变 能不能通过工程设置实现呢? 有知道的告诉下 谢谢啦

argc:正整数,表示可执行程序接收到的参数数量,一定大于0
argv:字符串数组(也可看作字符矩阵),数组中字符串个数即为argc。

打个比方,你有一个VC工程,编译结束以后生成了某个可执行文件:
D:\MyProj\Debug\test.exe

那么当你直接双击这个程序打开时,系统实际接收到的命令行就是简单的:
"D:\MyProj\Debug\test.exe"(不带引号)

而当你在WinXP中打开cmd.exe控制台(Win98中是command.exe),然后输入如下命令行时:
"D:\MyProj\Debug\test.exe hello world"(不带引号)
系统接收到的命令行中:
argc=3
argv[0]="D:\MyProj\Debug\test.exe"
argv[1]="hello"
argv[2]="world"

==============

如果你需要传递一个文件路径给可执行程序,当然可以在工程设置中进行设置,但是我不建议你这么做,因为这样的话每次编译调试时,被传递的文件都可能由于代码的修改而被修改,从而导致一系列不希望看到的结果。因此我的建议是,在工程中不加修改,调试时手动输入命令行进行调试。

还是按上面的例子来讲,比如我要传递C:\diary.txt给这个程序,就点“开始”->“运行”,输入“cmd”,然后输入:
D:\MyProj\Debug\test.exe c:\diary.txt
即可。