В настоящее время я изучаю библиотеку CFFC класса CFile, и у меня есть проблема с записью данных в файл с использованием метода Write. Когда я прохожу обугленного массив в качестве параметра он отлично работает:Нули после каждого символа при записи CString в CFile с использованием элемента записи
char c[] = "Hello!";
int size = sizeof(c)/sizeof(c[0]);
myFile.Write(c, size)
Символы, которые были написаны в файл:
Hello!
Но когда я пытаюсь передать объект CString в качестве аргумента:
CString cS("Hello");
myFile.Write(cS, cS.GetLength());
я получаю:
H e l
Я также пробовал:
CString cS("Hello");
LPWSTR c = cS.GetBuffer();
myFile.Write(c, cS.GetLength());
cS.ReleaseBuffer();
Но выход такой же, как указано выше. Что может быть причиной конверсии? Это происходит, потому что текст хранится в широких символах?
Используйте 'CStringA' вместо' CString'. Широкие символы в диапазоне ASCII состоят из одного байта ASCII и одного нулевого байта. –