Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Запись в файл


Автор: WinDWS 24.5.2009, 15:42
Здравствуйте, помогите не могу записать структуру в файл, использую Юникод, цифры записываются, а вот строки нет!
Вот функция:
Код

void writefile(fstream& file, const OPROS& opr,int n)
{
        file.clear();
        if(n)
        file.seekp((n-1)*LENZAP,ios::beg);
        file<<setw(LEN4)<<opr.year
            <<setw(LEN4)<<opr.gorod
            <<setw(LEN30)<<opr.obr
            <<setw(LEN30)<<opr.work
            <<setw(LEN4)<<opr.ijd
            <<setw(2)<<'\n';

        if(!file)
        {
            _getch();
        }
}

Вот структура файла:
Код

struct OPROS
{
    int year;
    BOOL gorod;
    char obr[LEN30];
    char work[LEN30];
    BOOL ijd;
};

Автор: bugmenot 24.5.2009, 15:48
И где же тут "Системное программирование и WinAPI"?

Автор: WinDWS 24.5.2009, 15:49
перепутал, ну можите помоч?

Автор: bugmenot 24.5.2009, 15:51
Я - нет.
Не разбираюсь я в С++ и fstream.

Автор: GremlinProg 24.5.2009, 15:52
Цитата(WinDWS @  24.5.2009,  17:42 Найти цитируемый пост)
использую Юникод

юникод что?
проект, файл, данные?
к чему относится это слово?

и чем проявляется ошибка:
Цитата(WinDWS @  24.5.2009,  17:42 Найти цитируемый пост)
а вот строки нет


Автор: GremlinProg 24.5.2009, 15:53
Перемещено в "С/C++ общие вопросы"

Автор: WinDWS 24.5.2009, 15:56
Юникод использую вот здесь:
struct OPROS
{
    int year;
    BOOL gorod;
    TCHAR obr[LEN30]; //здесь
    TCHAR work[LEN30]; //и здесь
    BOOL ijd;
};
возраст и город записывает, а вот что ниже уже нет!

Автор: andrew_121 24.5.2009, 16:23
WinDWS, Зачем писать структуру текстом? Пиши бинарно, так проще.

Автор: WinDWS 24.5.2009, 16:43
задание такое, написать не в бинарном, а в простом, и как это сделать, подскажите пожалуйста!!

Автор: codelord 25.5.2009, 01:40
а почему ты думаешь что они не записываются, может ты их в редакторе открываешь в котором не читается?? 
т.е убедись в том что если это если юникод то редактор верно отображает то что ты пытаешься записать, я думаю 
что firefox, откроет правильно если указать явно.

Автор: Peter 25.5.2009, 14:11
А точно TCHAR определено как wchar_t? Я предпочитаю явно писать wchar_t.

Автор: xvr 25.5.2009, 15:35
fstream - это поток для char*, для Unicode нужен wfstream

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)