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

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

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

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

07.02.2015, 22:45. Просмотров 935. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как считывать с файла данные блоками? (C++):

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

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

Как считывать из файла данные по 64 бита - C++
надо из созданого мной myfile.txt считывать информацию по блокам в 64 бита(в дальнейшем разбить их на 16 битные блоки),не очень хорошо...

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

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

Как считывать с файла и заполнять структуру? - C++
есть такое задание: каждый элемент исходного файла имеет след. структуру : Фамилия, № группы, оценка 1 оценка 2, оценка 3 Фамилия - не...

3
nmcf
6095 / 5406 / 1889
Регистрация: 14.04.2014
Сообщений: 22,497
07.02.2015, 22:49 #2
Массивом, например.
C++
1
2
3
char ch[100];
 
ifs.read(ch, 100);
2
gru74ik
Модератор
Эксперт CЭксперт С++
4350 / 1926 / 208
Регистрация: 20.02.2013
Сообщений: 5,108
Записей в блоге: 22
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
Привет! Вот еще темы с ответами:

Как считывать из файла по одному слову - C++
Есть файл с текстом, надо считать слово, что-то с ним сделать, потом считать следующее, так до конца файла Главный вопрос именно в...

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

Как считывать из файла цифры не в char, а в int - C++
Здравствуйте, люди добрые! Я записываю статистику количества встречающихся в тексте букв в файл, ещё я в него записываю закодированные...

Как можно считывать из строки (std::string или char*) данные при помощи cin - C++
Как можно считывать из строки (std::string или char*) данные при помощи cin (или может есть какой-нибудь поток-обертка?), как sscanf из...


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

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

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