Как я могу сделать код ниже, чтобы прочитать правильный текст. В моем текстовом файле Hello приветствуется на C++, однако в конце текста у него есть новая строка. В приведенном ниже коде мой readBuffer всегда содержит дополнительные символы.Проблема с использованием ReadFile() для чтения строки из текстового файла
DWORD byteWritten;
int fileSize = 0;
//Use CreateFile to check if the file exists or not.
HANDLE hFile = CreateFile(myFile, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(hFile != INVALID_HANDLE_VALUE)
{
BOOL readSuccess;
DWORD byteReading;
char readBuffer[256];
readSuccess = ReadFile(hFile, readBuffer, byteReading, &byteReading, NULL);
if(readSuccess == TRUE)
{
TCHAR myBuffer[256];
mbstowcs(myBuffer, readBuffer, 256);
if(_tcscmp(myBuffer, TEXT("Hello welcome to C++")) == 0)
{
FindClose(hFile);
CloseHandle(hFile);
WriteResultFile(TRUE, TEXT("success!"));
}
}
}
Спасибо,
благодарит робота за редактирование моего сообщения. – Bopha
Не ваша главная проблема, но вы смешиваете и сопоставляете wchar_t и TCHAR. mbstowcs() преобразует из char * в wchar_t *. TCHAR может быть либо char, либо wchar_t. Если вы хотите использовать wchar_t, используйте его. Если вы хотите использовать TCHAR, вам нужно проверить, что вам нужно mbstowcs() или нет. –
s/whetehr/is/ –