singlepost

Проблемы с записью кирилицы в файл. С++ << На главную или назад  

открываю файл и пытаюсь добавить в его конец новую запись… если строка содержит символы латиницы – все нормально. если в строке встречается символ кирилицы – запись прерывается, не создавая никакой исключительной ситуации.

CStdioFile file(DBase,CFile::modeNoTruncate | CFile::modeReadWrite | CFile::typeBinary);
file.SeekToEnd();
file.WriteString(str);

подскажитев чем ошибка?

60 ответов в теме “Проблемы с записью кирилицы в файл. С++”

  1. 10
    Леонид Максимов ответил:

    CR LF, даже думать не надо.

  2. 9
    Артур Терменжи ответил:

    благодарю))))))))))

  3. 8
    Артур Терменжи ответил:

    делал \n, \n\r, но не додумался до \r\n…

  4. 7
    Леонид Максимов ответил:

    а может все-таки \r\n?

  5. 6
    Артур Терменжи ответил:

    я задаю массив чаров со строкой в который ключаю символы перехода, вроде \n
    при этом в файле переход на новую строку не происходит. гдето читал что,WriteFile() не осуществляет форматированный вывод.
    какой тогда функцией писать в файл с переходом на новые строки?

  6. 5
    Леонид Максимов ответил:

    > как с помощью WinAPI писать форматированный текст в файлы?(с переходом на новую строку и тд.)
    > WriteFile() пишет без форматирования, другого выхода пока не нашел, может ктото знает…

    может быть просто писать символы перехода на новую строку самостоятельно?

  7. 4
    Вадим Божко ответил:

    Насколько я помню ты свой проект адаптировал для чтенияASCII?
    Какого типа str? Насколько я помню в WriteString параметр типа LPCSTR если str – CString, то может не выдавать ошибки, но при конвертировании на русских символах может выпадать 0 и ф-я думает, что конец строки.
    попробуй использовать потоки. пример -
    //www.rsdn.ru/Forum/message/1854733.flat.aspx
    отпишись о результате

  8. 3
    Леша Губарев ответил:

    использую MFC, а как записать юникодовскую строку в файл?

  9. 2
    Артур Терменжи ответил:

    похожий вопрос, как с помощью WinAPI писать форматированный текст в файлы?(с переходом на новую строку и тд.)
    WriteFile() пишет без форматирования, другого выхода пока не нашел, может ктото знает…

  10. 1
    Дмитрий Потапов ответил:

    1. В MFC?
    2. В кодировке str, и типе параметра который принимает CStdioFile::WriteString? Если вы имеете юникодовскую строку и функцию которая бежит по мультибайтовской строке, то функция наткнётя на нуль щедро расставленный в юникодовских строках и решит что строка кончилась. Посмотрите дебагерром на str – если туда запихали юникодовскую строку, то там нули через один будут понатыканы.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.