Считывание пути файла с клавиатуры

Меня очень заинтересовала тема правильного считывания пути файла введенного с клавиатуры.

Вот моя жалкая попытка реализации этой затеи:

    string FileName;
    string Kavichki = "\"";
    cout << "Введите путь и имя файла базы данных: ";
    getline(cin, FileName);
    string NewFileName = (Kavichki + FileName) + Kavichki;
    ofstream ExamDataBase(NewFileName, ofstream::app); 

Меня очень интересует как это реализовать правильно и с умом:)


Ответы (1 шт):

Автор решения: Tim4ukys

Держи, надеюсь сумел тебе помочь ;]

#include <Windows.h>
#include <iostream>
#include <fstream>

using namespace std;

bool isFileExist(const char* stPath)
{
    bool isExist = false;
    ifstream ifs(stPath);
 
    if(ifs.is_open() && !ifs.bad())
        isExist = true;
 
    ifs.close();
    return isExist;
}

int main()
{
    system("cls");
    setlocale(LC_ALL, "Russian");

    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    cout << "Введите полный путь или имя файла: ";
    char pathToFile[260];
    cin.getline(pathToFile, sizeof(pathToFile), '\n');
    
    GetFullPathNameA(pathToFile, sizeof(pathToFile), pathToFile, NULL);
    if (!isFileExist(pathToFile)) 
    {
        cout << "Ошибка: Нет такого файла :[" << endl; 
        return 0;
    }
/*
    pathToFile -- Путь до файла
*/

    return 0;
}
→ Ссылка