Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
nadie
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 4
1

Как считывать с файла данные блоками?

07.02.2015, 22:45. Просмотров 1120. Ответов 3
Метки нет (Все метки)

Есть код. Нужно считывать с файла информацию и подсчитать количество символов.Предусмотреть диагностику ошибок. Обязательно применение функции ifs.read(&ch,?);Я считываю по одному символу, а мне нужно блоками. Что подразумевается под блоками?И как это реализовать?
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
#include <iostream> //библиотеки ввода/вывода
#include <fstream> //файловый ввод/вывод
 
using namespace std;
 
int main()
{
    int nCount = 0; //ввод переменных (кол-во символов)
    bool bRead = false; // здесь не могу понять зачем нужно
    char ch; // это переменная заведена для того чтоб в конце проги экран сразу не закрылся, а ждалось ввода символа. Как раз в эту переменную
    ifstream ifs("input.txt"); //читает по символьно файл input.txt
    if(!ifs) //если файл не обнаружен вывести ошибку снизу
        cout<<"CANT OPEN input.txt\r\n";
    else //цикл, если файл обнаружен
    {
        while(!ifs.eof()) //пока не закончится файл (т.е. иду до конца файла)
        {
            ifs.read(&ch,1); // читается из потока несколько символов по адресу. В нашем случае число символов это 1, а адрес это &ch
            if(ch != ' ' && !ifs.eof()) // если мы считали не пробел, и файл не кончился, то увеличиваем счетчик символов.
                nCount++;
        }
        ifs.close(); //закрываю файл
    
  cout<<"input file complete "<<nCount<<"      CHARS\r\n"; // выводим результат работы проги на консоль.  Сколько символов в файле
    
    }
    cout<<"Press any key";cin>>ch;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2015, 22:45
Ответы с готовыми решениями:

Как считывать файлы блоками
В программе вводиться путь к файлу. Нужно считать его блоками по n байт. Как...

Как считывать данные из файла?
как считывать и записывать данные из файла по строкам в переменную?

Как считывать из файла данные по 64 бита
надо из созданого мной myfile.txt считывать информацию по блокам в 64 бита(в...

Как считывать данные из строки?
делаю программу работающую с ip-адресами. ввожу в консоли адрес через точку....

Как считывать матрицу из файла?
Как можно считать матрицу из файла по столбикам? Понятия не имею как можно это...

3
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
07.02.2015, 22:49 2
Массивом, например.
C++
1
2
3
char ch[100];
 
ifs.read(ch, 100);
2
sourcerer
Модератор
Эксперт CЭксперт С++
4862 / 2043 / 325
Регистрация: 20.02.2013
Сообщений: 5,537
Записей в блоге: 24
Завершенные тесты: 1
07.02.2015, 22:56 3
Может быть под "чтением из файла блоками" подразумевается чтение в буфер определённого размера? Создаёте массив типа char, размером, скажем 20 символов и читаете в него из файла 20 символов, считая в цикле их количество. Ну или объект типа string в качестве буфера использовать и туда читать символы. Ограничителем можно выставить условие
C++
1
if(ch != '\n' && !ifs.eof())
или, скажем,
C++
1
if(ch != '.' && !ifs.eof())
Тоже получится чтение блоками.

Добавлено через 24 секунды
nmcf, опередил ))
2
nadie
0 / 0 / 0
Регистрация: 07.02.2015
Сообщений: 4
08.02.2015, 20:49  [ТС] 4
gru74ik, nmcf, Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2015, 20:49

Как считывать информация с файла по байтам
У меня есть файл, выглядит как график, hex-вид : 00000001: 80 01 00 02 00 05...

Как считывать с файла и заполнять структуру?
есть такое задание: каждый элемент исходного файла имеет след. структуру :...

Как считывать из файла по одному слову
Есть файл с текстом, надо считать слово, что-то с ним сделать, потом считать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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