簡體   English   中英

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

[英]Can't open txt files in c++ program with 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;
}

您正在使用相對文件路徑打開文件。 調用進程的“當前工作目錄”可能不是您所期望的(請使用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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM