У меня есть файл, который содержит очень длинную строку Unicode. Я хочу прочитать всю строку Unicode из файла в строку (или CString). Как я могу это сделать? Спасибо
Используйте CFile MFC, чтобы открыть файл вызовите CFile :: GetStatus для получения размера файла http://msdn.microsoft.com/en-us/library/fa0hc0ht%28VS.80%29.aspx выделить массив BYTE полученного размера файла и использовать CFile :: Read, чтобы получить его http://msdn.microsoft.com/en-us/library/hwbccf8z%28v=VS.80%29.aspx
Теперь есть проблема спецификации, о которой нужно позаботиться. Проверьте, существуют ли символы спецификации в начале вашего буфера. Поскольку вы не указали, какой формат Unicode используется в вашем файле, вам нужно обратиться к http://en.wikipedia.org/wiki/Byte_order_mark, чтобы выяснить, что это такое. Перед продолжением удалите символы спецификации.
Теперь вы можете попробовать бросить необработанный буфер в конструктор CString. В большинстве случаев это работает.
CString lv_szResult; CStdioFile lv_InputFile( c_szFile, CFile::modeRead | CFile::typeUnicode ); CString lv_szLine ; while( lv_InputFile.ReadString( lv_szLine ) == TRUE ) { lv_szResult += lv_szLine + "\n" ; }
ifstream file("filename.txt"); char data[1024]; file.read(data, 1024); CString str(data);