2014-11-03 55 views
0

我有簡單的文件創建代碼,創建帶有記錄的文件。 existsf顯示該文件存在,但我無法在使用資源管理器的文件系統中看到它。什麼可能是錯的?文件被創建,但不可見

#define FN "C:\Projects\src.txt" 

using namespace std; 


inline bool existsf (const std::string& name) { 
    struct stat buffer; 
    return (stat (name.c_str(), &buffer) == 0); 
} 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    std::ofstream f; 
    f.open(FN); 
    if (f.is_open()) 
    { 
     f<<"Some text here"<<std::endl; 
     f.flush(); 
     f.close(); 
    } 
    if (existsf(FN)) wcout<<"exist\n"; 
} 
+0

一個體面的編譯器會通知您的錯誤的一個警告,如'警告:未知的轉義序列:'\ P''。假設你已經啓用了警告。 – user2079303 2014-11-03 10:10:17

回答

1
#define FN "C:\Projects\src.txt" 

反斜線在C++字符串常量轉義字符。您使用反斜槓來轉義Ps,這對他們沒有任何幫助。因此,這是等同於:

#define FN "C:Projectssrc.txt" 

你想逃到齒隙產生字面反斜槓在字符串中,像這樣的:

#define FN "C:\\Projects\\src.txt" 
+0

我不認爲你可以依靠''\ P'=='P''。 – MSalters 2014-11-03 13:19:08

相關問題