繁体   English   中英

Visual Studio 2010从命令行运行.exe与运行(F5)调试

[英]Visual Studio 2010 run .exe from command line vs run (f5) debug

我是C ++的新手,正在制作一个非常简单的程序。 我的程序所做的只是从main函数调用一个函数,该函数读取一个文本文件并返回。 为了检查我是否正确读取了文件,我尝试打印出已读入的字符串。从Visual Studio(f5)运行时,打印出(cout)可以正常工作。 但是,当我从命令行运行可执行文件时,函数的所有打印输出均未显示。 仅直接在主功能中出现打印输出。 我在其他地方找不到类似的问题。 任何帮助,将不胜感激。

在VC ++中运行程序时,默认情况下当前目录设置为项目目录,但默认情况下该应用程序位于其他文件夹中。

例如,应用程序可能是:

D:\\Work\\MyApp\\Debug\\MyApp.exe

但是项目目录可能是:

D:\\Work\\MyApp\\MyApp\\

从VC ++外部启动程序时,需要采取步骤来确保当前目录正确,或者可执行文件及其引用的任何数据文件都位于同一文件夹中。

在Visual Studio中,IDE启动的项目的默认工作目录是项目文件夹。 这是项目文件所在的文件夹(.vcproj或.vcprojx文件是项目文件)。

如果您正在读取的数据文件位于同一文件夹中,则代码如下:

std::ifstream inf("datafile.txt");

将成功,因为当前工作文件夹和数据文件所在的文件夹相同。

但是,如果切换到写入可执行文件的位置(通常是project-dir / Debug或project-dir / Release文件夹)并从命令外壳运行相同的可执行文件,则将找不到数据文件。

要测试这种情况。 请执行下列操作:

  1. 打开命令提示符。
  2. 切换到数据文件所在的项目文件夹。
  3. 使用指定的路径运行可执行文件:例如,./ ./Debug/YourProgram.exe

注意:您可以通过使程序将数据文件名作为argv[]参数来避免这种情况。 然后,您的程序将只使用启动时告诉您的任何文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM