Привет.
Я столкнулся с проблемой. Следующий код:
std::ofstream out(fName, std::ios_base::binary);
if(out.is_open())
{
//...
//Do smth
//...
out.close();
}
Не открывает поток, т.е. out.is_open() == 0, если fName == "C:\dot.dot\my.bin", в то время как все ОК с "C:\dot\my.bin". В чем может быть проблема и как с ней бороться? Директории "C:\dot.dot\" и "C:\dot.dot\" — обе существуют.
Спасибо.
Здравствуйте, AlexanderSidorenko, Вы писали:
AS>Привет.
AS>Я столкнулся с проблемой. Следующий код:
AS>std::ofstream out(fName, std::ios_base::binary);
AS>if(out.is_open())
AS>{
AS> //...
AS> //Do smth
AS> //...
AS> out.close();
AS>}
AS>Не открывает поток, т.е. out.is_open() == 0, если fName == "C:\dot.dot\my.bin", в то время как все ОК с "C:\dot\my.bin". В чем может быть проблема и как с ней бороться? Директории "C:\dot.dot\" и "C:\dot.dot\" — обе существуют.
AS>Спасибо.
А если fName == "C:
\\dot.dot
\\my.bin" работает ?
Да, именно так и есть:
fName == "C:\\dot.dot\\my.bin"
не работает

Character Set — Use Multi-Byte Character Set.
Здравствуйте, AlexanderSidorenko, Вы писали:
AS>Да, именно так и есть:
AS>fName == "C:\\dot.dot\\my.bin"
AS>не работает
AS>Character Set — Use Multi-Byte Character Set.
Тогда не знаю

. У меня вот такой пример работает (пробовал VS 2005 и mingw, Vista):
#include "stdafx.h"
#include <fstream>
int _tmain(int argc, _TCHAR* argv[])
{
const char fName[] = "C:\\dot.dot\\my.bin";
std::ofstream out(fName, std::ios_base::binary);
if(out.is_open())
{
printf("File opened\n");
out.close();
}
else
{
printf("File not opened\n");
}
return 0;
}
Пишет "File opened".