2017-07-23 138 views
-1

是否有可能檢測到可執行文件所在的位置,然後使用該可執行文件(假設它位於文件夾中)找到特定的文件夾並生成帶有可執行文件的文本文件用戶在可執行文件夾中提供的名稱?如何在可執行文件所在的文件夾中創建txt文件

我一直在嘗試一些不同的方法,這就是我來了這麼遠(我知道這不對頭)

std::cout << "Input the name of the file: "; 
    std::string name = ""; 
    std:: cin >> name; 
    std::ofstream outfile ("c:/whereExecutableIsLocated/" + nameOfFolderStoredInAVariable + "/" + name.c_str()); 
    std::cout << name<< " is now a file inside of a folder you made!" << std::endl; 
+0

你不能僅僅通過它的名字找到一個文件。那麼你可以,但你不能確定這是否是你想要的,因爲具有相同文件名的多個文件可以存在於不同的位置。 – DimChtz

+0

確實如此,那麼如果這就是你如何生成一個文本文件到一個字符串作爲名稱的文件夾? –

+0

僅適用於MS Windows:'GetModuleFileName':https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx,如果您需要'GetModuleHandle':https: //msdn.microsoft.com/en-us/library/windows/desktop/ms683199(v=vs.85).aspx然後,您可以拆分路徑名稱併爲您的txt文件構建新的文件路徑名稱。 –

回答

2

嘗試:

std::string path = nameOfDirectoryStoredInAVariable + "\" + name;

std::ofstream outfile (path.c_str());

+0

現在它給了我'錯誤:'std :: string'沒有名爲'c'的成員|' –

+0

應該是:name.c_str() –

+0

@RobertA - 當然,我的壞 – Hollyol

相關問題