#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
static HANDLE hFile=NULL;
static unsigned long dwByte;
int _tmain(int argc, _TCHAR* argv[])
{
hFile=CreateFile(L"1.txt",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile!=INVALID_HANDLE_VALUE)
{
unsigned char *Read=new unsigned char[20];
if(!ReadFile(hFile,Read,20,&dwByte,NULL))
printf("%ReadFile Error %i\n",GetLastError());
/*Если вывести так тогда после считанной информации еще на экране выводятся лишние символы у меня
¤¤¤¤♥☺ (253,253,253,253,3,1) тоесть по счету это получается 20,21,22,23,24,25 байти под которые память
я как бы не отводил*/
printf("%s\n",Read);
//А так все нормально
for(int i=0; i<20; i++)
printf("%i=\t%c\n",i,Read);
CloseHandle(hFile);
}
else { printf("Error code=%i\n",GetLastError());}
_getch();
return 0;
}
Лишние символы при чтении файла
Вот така проблема: в txt файл ввожу данные вручную строку 20 символов например "РРР ооо УЕН GHJK:L " при считывании и виводе на экран выводиться все то же самое но вконце: "РРР ооо УЕН GHJK:L ¤¤¤¤♥☺", тоесть 6 символов ни откуда.
Что это такое и как с этим бороться?
Код:
А завершающий 0 в C-string еще никто не отменял.
Тоесть мне надо самому прописывать 20-им символом символ окончания строки? "\0"
Да, именно так.
Спасибо все получилось.