[英]Clion — why do I need to type the full path?
我正在用CS106L課程閱讀器編寫一個小游戲。 我使用Clion和Window。
我將level.txt
與main.cpp
等放在直接位置。但是為什么我需要輸入全名才能讀取文件,而不是僅僅輸入level.txt
? 核心代碼是:
```c
void readCorrectFile(ifstream& input) {
// Read the user's prompt until user prompt the right file.
while (true) {
cout << "Enter the file name: ";
string filename;
getline(cin, filename);
// Find if it's a valid name
input.open(filename.c_str());
if (input.is_open()) {
return;
}
// Show info about read file.
cout << "Sorry, we cannot find: " << filename << endl;
input.clear();
}
}
假定您調用Snake.exe
時的當前工作目錄與包含level.txt
的目錄level.txt
。 在命令行執行的程序從執行它們的外殼程序繼承它們的當前工作目錄。
正如Dan所言,相對路徑應相對於您的.exe文件位置。 如果從IDE構建和運行程序,則會在某些CLion目錄中創建.exe文件。 如果您想更好地控制.exe文件的位置,則可以將以下行添加到CMakeLists.txt中(我假設在add_executable之前)。
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "path_to_directory_of_your_exe")
為了方便使用相對路徑,有時我會這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.