通常文件都是經過文件打開對話框得到的,文件路徑是CSTring類型。有些人比較鍾愛C語言的File格式,所以但願使用fopen函數,而該函數的第一個參數(文件路徑)是char *類型的,故無法直接使用cstring類型。若是將cstring轉成char *貌似也不行,由於cstring中隱藏了一些特殊字符的轉義,如‘’,這樣在轉換後的char *裏無法識別文件路徑。本人嘗試經過在每一個‘’以後再添加一個'',然而因爲文件路徑中有中文字符,處理起來比較麻煩,沒有成功~最後經過如下方法完美解決:ide
使用 _tfopen函數函數
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,_T("All Files (*.*)|*.*||"),NULL);
CString str;
if(dlg.DoModal() == IDOK)
str=dlg.GetPathName();
else
return;.net
File *fp= _tfopen(str,_T("r")));blog
糾結了一天多,總算解決~~get
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/goodbaby728/archive/2010/12/01/6046765.aspx博客