文件作为命令行参数
File as Command Line arguments
我是C++新手,我正在使用Visual Studio学习。我想制作一个小程序,从命令行读取文本并打开文本。我知道我的程序必须像这样开始:
int main (int argc, char *argv[] ){
ifstream File( argv[1] )
但是我对如何从Visual Studio命令提示符运行它感到非常困惑。我知道有很多这样的问题,但我仍然没有找到我想要的东西。我读到您必须转到属性、调试并更改命令行参数,但我到底需要在那里输入什么?我应该在VS命令提示符中键入什么。
谢谢!
从菜单中查找:项目>属性。或者从"解决方案资源管理器"树中右键单击项目并选择"属性"。
现在,在打开的对话框左窗格中选择:配置属性->调试
然后在右窗格网格中找到标题为:命令参数的行
用输入文件名填充它(我认为你最好把它作为一个完整路径放在那里,如果路径中有一个空格使用双倍配额。 像这样:
无空间:
filepathwithoutspace.txt
或带空格:
"file path with spaces.txt"
祝你好运。
对于初学者来说,你的代码不应该像这样开始:之前将argv[1]
传递给std::ifstream::ifstream
,您应该验证是否存在参数,并输出错误消息否则。 实际上,您最终可能会将空指针传递给ifstream
的构造函数,这将(通常(在程序崩溃。
至于如何运行它:你把可执行文件放在哪里? 如果你位于Visual Studio命令提示符窗口中,并且调用cl
,则默认情况下,可执行文件应位于本地目录。 只需输入 .name
,其中 name
是名称您的程序。 如果您实际上已从IDE,然后在命令窗口中,应使用 cd
进行导航生成可执行文件的位置(您可以找到从您的属性(,并按上述方式调用它;或者你可以简单地完全指定路径: c:UsersmewhereeverIPutTheThingname
.
如果要调试(使用调试器(,则需要指定:1(可执行文件的名称(但默认值应该很好(,2(要传递它的参数(您希望在其中看到的内容( argv[1]
- 如果引号中有空格,请不要忘记引号it(,以及 3( 可执行文件应运行的目录。 这第二个和第三个在某种程度上是相互依存的:你可以,对于例如,仅指定 2 中的文件名,以及文件位于 3 中,或者您可以指定文件名在 2 中,忘记 3。 或者结合使用二:在实践中,我倾向于从根源做所有事情目录,所以我会指定一个相对于这个的路径目录,然后是从我的项目文件到此根目录的路径在3. (我们设置事物的方式,这是......
,但是我想你会发现它更短一些。
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- 使用 C++ 将命令行参数拆分为参数/向量
- 如何在OMNET++中添加专门的命令行参数?
- 如何在不传递命令行参数的情况下在 c++ 中设置环境变量
- atoi() 在应用于大型命令行参数时会产生不正确的值
- 是否可以在命令行中将输入参数传递给可执行文件
- 命令行参数,cant 或两个变量
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 如何在 Android/NDK 上将命令行参数从 gradlew.bat 传递到 Clang
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 有没有办法根据命令行参数定义数组大小?运行时与编译时实例化?
- 从命令行获取参数时出现问题
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 命令行参数在不到 3 个 LOC 中 int?
- 在命令行参数中使用引号
- 使用参数 + stdout + stderr 从命令行调用 MFC 应用程序
- 在VS2013中使用devenv (C++)传递命令行参数argv
- 二进制数据作为命令行参数