[英]Why does fstream causes segmentation fault when opening file with format?
[英]Why does fstream create a file in the executable location?
我正在 fstream 中制作 C++ 程序,我注意到我的程序在可執行文件所在的位置創建了一個文件。
我制作了 2 個文件夾,bin 和 src。 src 有 main.cpp:
#include <fstream>
int main()
{
std::fstream file("first_file_with_fstream.txt");
file << "Hello, World of fstream!\n";
return 0;
}
我編譯它:
g++ -o 運行 main.cpp
當我在目錄 src.
編譯無誤后,我將 run.exe 移至 bin。
然后我執行 run.exe 並沒有按預期在 src 中找到其他文件。 然后我發現該文件在bin中。
請解釋為什么會這樣!
謝謝!
為什么 fstream 在可執行位置創建文件?
您使用了相對路徑名。 您的操作系統將相對路徑解釋為相對於“當前工作目錄”(或類似目錄)。 如果當前工作目錄是bin
,那么您將打開文件bin/first_file_with_fstream.txt
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.