2014-11-03 2 views
0

У меня есть простой файл, создающий код, который создает файл с записью. existsf показывает, что файл существует, но я не вижу его в файловой системе, используя explorer. Что может быть неправильным?Файл создан, но не отображается

#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

Достойный компилятор уведомит вас о вашей ошибке с предупреждением, такими как 'warning: неизвестная escape-последовательность: '\ P''. Предполагая, что вы включили предупреждения. – user2079303

ответ

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

косой является маскирующим в строковых константах C++. Вы использовали обратную косую черту, чтобы избежать P и s, что ничего не делает для них. Так что это эквивалентно:

#define FN "C:Projectssrc.txt" 

Вы хотели, чтобы избежать люфта, чтобы произвести буквенный слеш строки, как это:

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

Я не думаю, что вы можете рассчитывать на '' \ P '==' P''. – MSalters

Смежные вопросы