Форум программистов, компьютерный форум CyberForum.ru

Окончание файла - C++

Восстановить пароль Регистрация
 
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
22.09.2013, 20:02     Окончание файла #1
Доброго вечера! В тхт файле всего одна строка из 12 символов- 12 байт. Пытаюсь ее прочитать но читается она только с лишними каракулями в конце. Проверка конца файла eof не срабатывает. Помогите разобраться !
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    HANDLE hFile;
        MyFileInfo temp = GetFileInfo(fileName);  // Инфа о файле
        hFile=CreateFile((m_currentDir + _T('/') + fileName).c_str(), GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ |FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
        if(hFile !=INVALID_HANDLE_VALUE)
        {
          cout<<endl<< " Открытие удалось "; 
          bool bResult;
          DWORD nBytesRead;
          const int sd=temp.size;  // sd как парамент для Buff не катит как и для ReadFile
          char Buff[50];
          bResult = ReadFile(hFile, &Buff ,sizeof(Buff), &nBytesRead, NULL);
          if (bResult &&  nBytesRead == 0 ) 
          {
          Buff[12]='\0';
          cout<<endl<<Buff;
          }
          cout<<endl<<Buff;
          if (bResult) 
          {
              cout<<endl<< " Файл прочитан "; return true;
              cout<<endl<< " Размер "<<temp.size; return true;
          }
          else
          {
              cout<<endl<< " Не удается прочитать файл "; return false;
          }
        }
        else
        {
          cout<<endl<< "INVALID_HANDLE_VALUE"; return false;
 
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
22.09.2013, 20:29  [ТС]     Окончание файла #2
Окончание файла
MrOnlineCoder
Всегда онлайн
 Аватар для MrOnlineCoder
258 / 221 / 13
Регистрация: 07.04.2013
Сообщений: 1,259
22.09.2013, 20:47     Окончание файла #3
ArkTaS, к чему здесь Delphi?
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
22.09.2013, 21:07  [ТС]     Окончание файла #4
Без понятия как это вышло, думал создал в разделе С++ для начинающих. Кому написать что бы перенесли тему ?
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
22.09.2013, 21:20     Окончание файла #5
Цитата Сообщение от ArkTaS Посмотреть сообщение
C++
1
if (bResult && nBytesRead == 0 )
Странное условие... (Такое только при чтении в конце файла или из пайпа, в который записали 0 байт.)
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
22.09.2013, 22:32  [ТС]     Окончание файла #6
Уже все в порядке. Нашел ответ в dev center микрософта.
C++
1
2
3
4
5
        if (dwBytesRead > 0 && dwBytesRead <= BUFFERSIZE-1)
        {
            ReadBuffer[dwBytesRead]='\0'; // NULL character
            cout<<"\n\n"<<"Content of file ";wcout<<fileName;cout<<endl<<ReadBuffer;
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 22:36     Окончание файла
Еще ссылки по теме:

Окончание связанного списка C++
Окончание W и A в функциях C++
C++ Окончание ввода в vector<int> по '\n'

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 22:36     Окончание файла #7
Вот так сделайте, должно помочь:
C++
1
char Buff[50] = "\0";
Yandex
Объявления
22.09.2013, 22:36     Окончание файла
Ответ Создать тему
Опции темы

Текущее время: 15:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru