簡體   English   中英

fstream C ++路徑

[英]fstream C++ Pathing

大家好,我迅速編寫了一個測試程序,向您顯示我遇到的問題。

我正在使用fstream將數據寫入游戲的文件,以便它們可以加載和保存其變量。

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

int main()
{
std::ofstream outputFile;
outputFile.open("PlayerData"); // This creates the file


std::string Name;
int Age;

std::cout << "Your Name: ";
std::cin >> Name;
outputFile << Name << std::endl;
std::cout << "Your Age: ";
std::cin >> Age;
outputFile << Age << std::endl;


outputFile.close();


return 0;




}

當我運行程序時,它將在以下位置創建“ PlayerData”文件:

Visual Studio 2013 \\項目\\ TestFilePathing \\ TestFilePathing

一切正常,但我希望將PlayerData文件而不是轉儲到TestFilePathing目錄中,我希望將其創建到子目錄中以供組織使用。

感謝:D

如果您未指定路徑,則文件將在當前目錄中創建,這通常不是所希望的行為。 您必須指定完整路徑,以確保將圓角保存在所需的位置。 如果您想知道當前可執行文件的路徑,可以使用檢查另一個SO問題: https : //stackoverflow.com/a/1528493/566608 擁有路徑后,您可以在可執行文件附近的路徑中選擇一個位置來保存數據。 或者,如果願意,請使用系統文件夾(取決於操作系統如何知道其名稱,在Windows中請檢查 。)永遠不要信任當前目錄作為路徑或路徑的一部分,因為用戶始終可以選擇使用以下命令運行程序不同的當前目錄。

使用文件路徑中的子目錄:

outputFile.Open("SubDirectory/PlayerData");

它最終出現在Visual Studio 2013\\Projects\\TestFilePathing\\TestFilePathing是,您在調試設置中將該目錄作為工作目錄。 (檢查項目的配置)。 如果更改該目錄(或從另一個目錄中的命令行啟動二進制文件),則該文件最終將位於該目錄中。

如果您指定相對路徑,您將獲得此行為。 否則,您可以指定一個絕對路徑,並且無論您的工作目錄是什么,文件都會一直存在該目錄中。

暫無
暫無

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

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