Невозможно открыть fstream при указании абсолютного пути - PullRequest
3 голосов
/ 31 октября 2009

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

    #include <fstream>

    ...

    ofstream File("C:\temp.txt");

    if(File)
       File << "lolwtf";

Открытие ofstream завершается неудачно всякий раз, когда я указываю абсолютный путь. Относительные пути, кажется, работают без проблем. Я действительно не уверен, в чем проблема здесь.

Ответы [ 3 ]

25 голосов
/ 31 октября 2009

Ваш путь неверен:

"C:\temp.txt"

\ экранирует "t" как символ горизонтальной табуляции, поэтому значение пути заканчивается как:

"C:    emp.txt"

То, что вы хотите:

"C:\\temp.txt"

или

"C:/temp.txt"
8 голосов
/ 31 октября 2009

Проблема в вашей строке, вы не можете избежать обратной косой черты.

 ofstream File("C:\\temp.txt");
6 голосов
/ 31 октября 2009

Несмотря на то, что пользователи Windows предпочитают нестандартный символ «\» в качестве разделителя пути, стандарт «/» работает отлично и позволяет избежать таких неприятных проблем, как эта.

Итак, мой совет - придерживаться косых черт ...

std::ofstream File("C:/temp.txt");
...