為什麼這篇dir副檔名鄉民發文收入到精華區:因為在dir副檔名這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者hyhjcjy (翊玥)站內C_and_CPP標題[問題] 刪除字串特定符號時間Fri Jun ...
要讀入某個資料夾底下的所有檔案,然後作一些處理後存成同檔名的txt檔,
再取用這些txt檔到MATLAB作圖。
但是讀取檔名的時候都會包含副檔名例如 myfile.dex
存成新檔名就會變成 myfile.dex.txt。
=====================以下是大略的程式碼===========================
vector<string> files = vector<string>();
getfiles(dir, files);
for(unsigned int i=0; i<files.size(); i++){
string filename=files[i].c_str();
string filenameWithPath= dir+filename;
FILE *f_infile = fopen(filenameWithPath,"rb");
sprintf(filenameWithPath,"%s_proc.txt",filename.c_str());
FILE* f_stats = fopen(filenameWithPath,"wt");
doSomeProcess(f_infile,f_stats);
fclose(f_stats);
fclose(f_infile)
}
======================================================
可是這種myfile.dex.txt有好幾個"."的檔名在MATLAB處理上會發生一些問題,
所以想在一開始讀進來的檔名字串filename中把"."拿掉。
存成myfiledex.txt就好。
我查過可以使用erase,但是會當機。程式碼如下:
filename.erase(filename.end()-4); //倒數第四個字串後全部刪除
sprintf(filenameWithPath,"%s_proc.txt",filename.c_str());
FILE* f_stats = fopen(filenameWithPath,"wt");
就是只有加入有註解的那行而已。 預計可以刪除".dex"的部分。
Compile會過,Run會當機。
查了很久erase的使用,看不出是什麼問題,求幫助!!><"
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.61.240.28
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1402041103.A.171.html
※ 編輯: hyhjcjy (61.61.240.28), 06/06/2014 15:54:16
謝謝樓上幾位大大!!再來試試看!!
※ 編輯: hyhjcjy (61.61.240.28), 06/09/2014 12:04:43