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

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

本文关键字:运行 f5 调试 exe 2010 命令行 Visual Studio      更新时间:2023-10-16

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

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

例如,应用程序可能是:

D:WorkMyAppDebugMyApp.exe

但项目目录可能是:

D:WorkMyAppMyApp

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

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

如果您正在读取的数据文件位于同一文件夹中,请按如下方式编写代码:

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

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

但是,如果切换到写入可执行文件的位置(通常是项目目录/调试文件夹或项目目录/发布文件夹)并从命令外壳运行相同的可执行文件,则找不到数据文件。

为了测试这种情况。执行以下操作:

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

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