std::ofstream не открывается, если в имени есть .
От: AlexanderSidorenko  
Дата: 18.01.09 13:26
Оценка:
Привет.
Я столкнулся с проблемой. Следующий код:
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\" — обе существуют.
Спасибо.
Re: std::ofstream не открывается, если в имени есть .
От: Константин Б. Россия  
Дата: 18.01.09 15:04
Оценка:
Здравствуйте, 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" работает ?
Re[2]: std::ofstream не открывается, если в имени есть .
От: AlexanderSidorenko  
Дата: 18.01.09 17:17
Оценка:
Да, именно так и есть:
fName == "C:\\dot.dot\\my.bin"
не работает
Character Set — Use Multi-Byte Character Set.
Re[3]: std::ofstream не открывается, если в имени есть .
От: Константин Б. Россия  
Дата: 18.01.09 17:30
Оценка:
Здравствуйте, 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".
Re: std::ofstream не открывается, если в имени есть .
От: Bell Россия  
Дата: 19.01.09 03:23
Оценка:
Здравствуйте, AlexanderSidorenko, Вы писали:

...

Для начала попробуй вот так:
std::ofstream out(fName, std::ios_base::binary | std::ios_base::out);
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.