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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
#1

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

22.09.2013, 20:02. Просмотров 357. Ответов 6
Метки нет (Все метки)

Доброго вечера! В тхт файле всего одна строка из 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;
 
        }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 20:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Окончание файла (C++):

Проверка на окончание файла - C++
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;typeinfo&gt; #include &lt;cstdlib&gt; using namespace std; const int size = 100; ...

Неожиданное окончание файла - C++
Требуется организовать побитовое чтение файла (формат .dat) и компоновка (перестановка 2-х бит) в массив. Написал код. Возникла проблема:...

Окончание ввода - C++
Здравствуйте. Возникла проблема как окончить заполнение вектора по нажатию определенной клавиши? (В данном случае &quot;Enter&quot;. do { ...

Окончание W и A в функциях - C++
Привет. Объясните пожалуйста допустим: GetCurrentDirectoryW (Unicode) and GetCurrentDirectoryA (ANSI) - это понятно. А обычная...

Окончание слова - xyz (СИ) - C++
Приветствую. Нужно сделать программу, которая бы выводила на экран слова, окончания которых - xyz. Программу нужно сделать при помощи...

Окончание связанного списка - C++
Скажите, пожалуйста, как в моём случае можно поступить: выйти из цикла, если нажатием Enter ничего не вводится и выдавать ошибку, если...

6
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
22.09.2013, 20:29  [ТС] #2
Окончание файла
0
MrOnlineCoder
Всегда онлайн
269 / 233 / 13
Регистрация: 07.04.2013
Сообщений: 1,297
Завершенные тесты: 1
22.09.2013, 20:47 #3
ArkTaS, к чему здесь Delphi?
0
ArkTaS
1 / 1 / 0
Регистрация: 01.07.2013
Сообщений: 127
22.09.2013, 21:07  [ТС] #4
Без понятия как это вышло, думал создал в разделе С++ для начинающих. Кому написать что бы перенесли тему ?
0
Somebody
2789 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
22.09.2013, 21:20 #5
Цитата Сообщение от ArkTaS Посмотреть сообщение
C++
1
if (bResult && nBytesRead == 0 )
Странное условие... (Такое только при чтении в конце файла или из пайпа, в который записали 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;
        }
0
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 22:36 #7
Вот так сделайте, должно помочь:
C++
1
char Buff[50] = "\0";
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 22:36
Привет! Вот еще темы с ответами:

Задача про окончание уроков - C++
Ребят помогите,нужен код на С++,понимаю алгоритм,а как это записать в С++? В некоторой школе занятия начинаются в 9:00....

Подобрать верное окончание числительного - C++
помогите решить задачи на C++ условный оператор!! Бизнесмен Василий после прочтения известной книги решил открыть новый бизнес –...

Окончание ввода в vector<int> по '\n' - C++
Как реализовать ввод данных с клавы в vector&lt;int&gt;, так, чтобы ввод оканчивался по нажатию Enter? Мой вариант int main() { int...

В зависимости от введенного числа изменить окончание у слова - C++
Программировать начал только 2 недели назад, поэтому опыта очень мало. Может кто поможет. Нужно написать программу, которая в...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
22.09.2013, 22:36
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru