Я просто хочу прочитать файл, а затем обновить его значение,
Но при чтении с использованием CFile, он дает значение мусора в sFileContent
Вот мой Код
CString sWebAppsFile= _T("C:\\newFile.txt");
CString sFileContent;
CFile file;
int len;
if(file.Open(sWebAppsFile, CFile::modeRead))
{
len = (int) file.GetLength();
file.Read(sFileContent.GetBuffer(len), len);
sFileContent.ReleaseBuffer();
file.Close();
}
Пожалуйста, предоставьте любое решение
Используйте этот код
CFile file;
CString sWebAppsFile= _T("C:\\newFile.txt");
CString sFileContent;
if(file.Open(sWebAppsFile, CFile::modeRead))
{
ULONGLONG dwLength = file.GetLength();
BYTE *buffer = (BYTE *) malloc(dwLength + 1); // Add 1 extra byte for NULL char
file.Read(buffer, dwLength); // read character up to dwLength
*(buffer + dwLength) = '\0'; // Make last character NULL so that not to get garbage
sFileContent = (CString)buffer; // transfer data to CString (easy to use)
//AfxMessageBox(sFileContent);
free(buffer); // free memory
file.Close(); // close File
}
Или вы можете использовать CStdioFile
CString sWebAppsFile= _T("C:\\newFile.txt");
CStdioFile file (sWebAppsFile, CStdioFile::modeRead); // Open file in read mode
CString buffer, sFileContent(_T(""));
while (file.ReadString(buffer)) //Read File line by line
sFileContent += buffer +_T("\n"); //Add line to sFileContent with new line character
//AfxMessageBox(sFileContent );
file.Close(); // close File
Скрытый BYTE * в CString
BYTE *buffer;
CString sStr((char*)buffer);
// or for unicode:
CString str((const wchar_t*)buffer);
Других решений пока нет …