我在C++中有一個關於獲取由「\」分隔的名稱的問題。我有一個存儲圖像和標籤(只是1,2 ......)的完整路徑,例如文本文件作爲如何獲取txt文件中的圖像路徑的根文件夾名稱
Image_align\Russian\1.jpg;1
Image_align\USA\2.jpg;1
Image_align\China\3.jpg;2
我想要得到的圖像名稱和它的根文件夾名稱。例如。我有圖像'1.jpg',其根文件夾是'俄羅斯'。我做了一些事情,我做了一些文件名。現在,我仍然是它的根文件夾。你能讓我通過C++找到它嗎?預先感謝
這是我的代碼,我試圖
std::ifstream
file("database.txt");
char separator = ';'; //Filename and label separate by ";"
string imagepath; //'Image_align\Russian\1.jpg'
string label;
while (std::getline(file, content))
{
stringstream liness(content);
getline(liness, imagepath, separator);
Mat image = imread(imagepath);
const size_t last_slash_idx = imagepath.find_last_of("\\/");
if (std::string::npos != last_slash_idx)
{
imagepath.erase(0, last_slash_idx + 1);
}
string imagename=imagepath;
//Now I want to get the its root folder such as 'Russia', 'USA'..
爲什麼不使用POSIX功能基名和目錄名? – stark
@stark我沒有該代碼的專家。因此,我只是解析這個名字。 – Jame