我寫了一個簡單的程序來複制文件。 它得到兩個字符串:C++代碼:困惑的相對地址(波浪)
1)用於源文件的路徑。
2)用於複製文件的名稱。
當我給它絕對或相對路徑(沒有波浪號(〜))時,它可以正常工作。
但是,當我給它一個帶波形符號(〜)的相對路徑時,它找不到文件的地址。這讓我感到困惑!
這是我的樣本輸入:
1)/Users/mahan/Desktop/Copy.cpp
2)〜/桌面/ Copy.cpp
第一個正常工作,但第二個沒有。
這裏是我的代碼:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
string path, copy_name;
cin >> path >> copy_name;
ifstream my_file;
ofstream copy(copy_name);
my_file.open(path);
if(my_file.is_open())
{
copy << my_file.rdbuf();
copy.close();
my_file.close();
}
}
不應該是:「[...]因此只有您的_first_示例有效。」? –
@BrunoParmentier當然,是THX指出了。下次可以隨意提出編輯。 –
請注意,用戶可以修改HOME環境變量。'getpwuid(getuid());'返回的'struct passwd'中的'pw_dir'條目不能被用戶修改。 –