vs2010 怎么给c++项目预设命令行参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vs2010 怎么给c++项目预设命令行参数相关的知识,希望对你有一定的参考价值。
这里的command arguments 和 working directory填什么?
command argument就是命令行参数。比如你自己写了一个copy程序,跟系统自带的copy程序一样,打开cmd,然后输入copy c:\\1.txt d:这样的命令,那么此时就把c:\\1.txt和d:这两个参数以字符串的形式传递给了int main(int argc,char *argv[]) 中的argv,并用argc来保存参数的个数。如果没有参数,比如你在cmd中输入copy或者双击copy.exe这个程序,传入main函数的就是copy.exe程序的路径,比如c:\\copy.exe,也就是说命令行参数至少有一个,就是运行的程序路径。所以command argument就是程序路径、空格、参数1、空格、参数2...working directory就是工作路径,有很多程序需要的外部文件都在这个路径了里面查找。比如要打开文件,比如fopen("1.txt","r");这样不带路径而直接输入文件名,就搜索这个工作路径,没有搜索到则fopen返回NULL。一般程序和文件都是在一个文件夹的,这样便于阅读与查阅。 参考技术A 就是第二行是设置参数的 command arguments
VS 编写C++时使用技巧
1. 给命令行添加参数:
比如test.cpp中需要读取用户在控制台中输入的参数,
在gcc中可以这样写:
编译:g++ -Wall test.cpp -o test
运行:test param1 param2....
其中param是你要输入的参数 。
在int main(int argc,char ** argv)中,argv[0]表示程序名,即text,argv[1]开始输入的第一个参数,argv[2]开始输入的第二个参数,以此类推。
name在VS中怎么输入参数呢?
一VS2015为例:
右键要添加参数的文件所在的工程,点击属性-->配置属性-->调试,如下图:
在命令参数下添加参数即可。
注意:各个参数之间用空格进行分隔,当参数中含有空格时,要将参数用双引号括起来,否则空格不会被添加到参数中。
参考代码:
int main(int argc, char **argv) { string str; for (int i = 0; i < argc; ++i) { str += argv[i]; str += " "; } cout << str << endl; system("pause"); return 0; }
2. VS下同一个解决方案下不同工程之间头文件的相互调用
同一个解决方案下可以建立不同的项目,可以通过以下方式实现不同项目之间头文件共享:
假设有一个解决方案下有两个Project,分别为ProjectA和PtojectB,如果ProjectA中的testA.cpp文件用到了ProjectB中的testB.h头文件,name可以通过右击ProjectA-->属性-->通用属性-->C/C++-->常规,找到附加包引项目,如图:
在附加包引项目中输入testB.h所在的项目名称即可。
这样,在项目testA中#include "testB.h"就不会报错了。
以上是关于vs2010 怎么给c++项目预设命令行参数的主要内容,如果未能解决你的问题,请参考以下文章