正しいテキストを読み取るために、以下のコードを作成するにはどうすればよいですか?私のテキストファイルには、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!"));
}
}
}
おかげで、
私の投稿を編集するためのrobboticに感謝します。 – Bopha
あなたの主な問題ではありませんが、あなたはwchar_tとTCHARを混ぜ合わせています。 mbstowcs()はchar *をwchar_t *に変換します。 TCHARはcharまたはwchar_tのいずれかです。 wchar_tを使用する場合は、それを使用します。 TCHARを使用する場合は、mbstowcs()が必要かどうかをテストする必要があります。 –
s/whetehr/// –