无法使用Visual Studio 2019在C ++程序中打开txt文件

时间:2019-07-31 00:50:14

标签: c++ ifstream visual-studio-2019

使用XCode一段时间后,我才开始使用Visual Studio 2019。 我总是能够在XCode中打开txt文件,但是现在 我无法在Visual Studio 2019中打开它们。

基本上,我要做的是在“调试”选项卡中按“不调试就开始”,并收到错误消息“文件未打开!”。根据我写的else陈述。我不确定这是否与txt文件的位置或文件路径有关。

下面是我到目前为止一直在使用的简单程序 弄清楚如何在Visual Studio 2019中打开txt文件:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
    ifstream fobj;
    fobj.open("input.txt");

    if (fobj)
    {
        cout << "File Opened!\n";
    }
    else
    {
        cout << "File Did Not Open!\n";
    }

    return 0;
}

1 个答案:

答案 0 :(得分:1)

您正在使用相对文件路径打开文件。调用进程的“当前工作目录”可能与您期望的不一样(请与GetCurrentDirectory()进行确认)。打开文件时,请始终使用绝对文件路径。

例如,如果文件与EXE位于同一文件夹中,请使用GetModuleFileName()获取EXE的完整路径,然后将文件名部分替换为所需的文件名:

#include <iostream>
#include <fstream>
#include <string>

#include <windows.h>
#include <shlwapi.h>

int main()
{
    char filename[MAX_PATH] = {};
    ::GetModuleFileNameA(NULL, filename, MAX_PATH);
    ::PathRemoveFileSpecA(filename);
    ::PathCombineA(filename, filename, "input.txt");

    std::ifstream fobj;
    fobj.open(filename);

    if (fobj)
    {
        std::cout << "File Opened!\n";
    }
    else
    {
        std::cout << "File Did Not Open!\n";
    }

    return 0;
}