Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 05.02.2019
Сообщений: 48

Определение количество символов в файле

25.03.2019, 16:01. Показов 4689. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел на сппстудио.ком вариант решения:
C++
1
2
3
4
5
6
7
        FILE* input = fopen(_way, "r");//--------------------------------------------------путь к файлу, в котором нужно зашифровать содержание
fseek(input, 0, SEEK_END);//---------------------------------------------------устанавливаем позицию в конец файла
        int sizeFileData = ftell(input);//---------------------------------------------получаем размер в байтах
        rewind(input);//---------------------------------------------------------------устанавливаем позицию в начало файла
        
        char *str = new char;//--------------------------------------------------------содержание файла
        fread(str, sizeof(char), sizeFileData, input);//-------------------------------ввод содержания файла
но он не работает так, как мне надо. Определяется размер в байтах, а как посчитать количество всех символов?

необходимо для:
C++
1
char *str = new char[sizeFileData];//------------------------------------------содержание файла
вроде как sizeFileData*sizeof(char) - не работает
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2019, 16:01
Ответы с готовыми решениями:

Посчитать количество символов в созданом файле, а также определить количество знаков препинания
Программа №1 Создать файл и записать в него 3 строки. Посчитать количество символов в созданом файле, а также определить количество...

Во входном файле подсчитать количество символов
Здраствуйте, подскажите пожалуйста как в си во входном файле подсчитать количество символов

Узнать количество символов в текстовом файле
Нужно сосчитать массив из символов, но их кол-во неизвестно. Как узнать? Как-нибудь можно подругому сосчитать символы, в файле? Обязательно...

9
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
25.03.2019, 16:11
AgonMountain, кодировка файла какая?
0
0 / 0 / 0
Регистрация: 05.02.2019
Сообщений: 48
25.03.2019, 16:15  [ТС]
рубите без топора, файл с расширением .txt....

внутри программы, откуда данный кусочек, используется:
C++
1
2
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
как определить кодировку .txt?
0
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
25.03.2019, 16:18
AgonMountain, количество байтов не совпадает с количеством символов?
1
0 / 0 / 0
Регистрация: 05.02.2019
Сообщений: 48
25.03.2019, 17:00  [ТС]
передаю файл, содержание которого:
aaaaa
bbbbb
ccccc
ddddd
eeeee


5*5(все видимые символы)+4(переходы к следующей строке)=29
а int sizeFileData = ftell(input) говорит, что 33

Добавлено через 1 минуту
результат, в строке, в которой должно быть содержание файла:
aaaaabbbbbcccccdddddeeeee???? (? - какие-то символы)

Добавлено через 16 минут
как я понял, знак переноса строки занимает 2 байта, но он не отображается в строке...

вместо этого:
aaaaa\nbbbbb\nccccc\nddddd\neeeee

сохраняется это:
aaaaabbbbbcccccdddddeeeee????

Добавлено через 14 минут
Тема закрыта, ошибку нашел.
0
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
25.03.2019, 17:11
Цитата Сообщение от AgonMountain Посмотреть сообщение
Тема закрыта, ошибку нашел.
Что за ошибка то была?
0
0 / 0 / 0
Регистрация: 05.02.2019
Сообщений: 48
25.03.2019, 17:29  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
        fseek(input, 0, SEEK_END);//---------------------------------------------------устанавливаем позицию в конец файла
        int sizeFileData = ftell(input);//---------------------------------------------получаем размер в байтах
        rewind(input);//---------------------------------------------------------------устанавливаем позицию в начало файла
        
        char *str = new char[sizeFileData];//------------------------------------------содержание файла
        fread(str, sizeof(char), sizeFileData, input);//-------------------------------ввод содержания файла
 
        functionA(str, sizeFileData, str_abc, str_abc_len, number, str);//-------------шифрование содержания файла
 
        fwrite(str, sizeof(char), sizeFileData, output);//-----------------------------вывод зашифрованного содержания файла
проблема тут, так как при создании str - она не пустая нужно определить сколько принимать и отдавать:
C++
1
2
        fread(str, sizeof(char), sizeFileData, input);//-------------------------------ввод содержания файла
        fwrite(str, sizeof(char), sizeFileData, output);//-----------------------------вывод зашифрованного содержания файла
Добавлено через 54 секунды
sizeFileData - имеет ошибочное значение для своей задачи

Добавлено через 47 секунд
вот думаю, может сделать цикл, который ищет всякие пробелы, переносы строк, табуляции и отнимать от sizeFileData

Добавлено через 8 минут
C++
1
2
3
4
5
6
7
        for(int i = 0; i < sizeFileData; ++i)
        {   
            if(isspace(str[i]))
            {   
                --sizeFileData;
            }
        }
что-то типо такого безобразия
0
35 / 28 / 8
Регистрация: 01.03.2019
Сообщений: 135
25.03.2019, 17:38
Цитата Сообщение от AgonMountain Посмотреть сообщение
sizeFileData - имеет ошибочное значение для своей задачи
Так количество байт не соответствует количеству символов в файле?
0
0 / 0 / 0
Регистрация: 05.02.2019
Сообщений: 48
25.03.2019, 18:21  [ТС]
соответствует...каждый символ - 1 байт, каждый перенос строки - 2 байта, НО! когда я использую fread() в строке str находится содержание файла без переносов строки...когда я пытаюсь вывести строку str через fwrite() захватываются лишние символы из мусора...

тот вариант что я написал выше (цикл) - не работает...думаю что делать

Добавлено через 10 минут
C++
1
2
3
4
5
6
7
        int current = 0;
        for(int i = 0; i < sizeFileData; ++i)   
        {   
            if(str[i] == '\n')  
                ++current;
        }
        sizeFileData = sizeFileData - current;
новый вариант...в варианте выше я сразу декрементировал sizeFileData...(не проходил все содержание файла)

Добавлено через 28 минут
понятным языком:
все символы алфавита, цифры, табуляция горизонтальная - весят 1 байт
перенос строк, вертикальная табуляция - весят 2 байта

так как программе важно количество символов, а получить мы можем только размер файла в байтах - нужно обойти все содержимое файла и проверить на наличие 2 байтовых символов.

если вычесть из размера файла в байтах количество всех 2 байтовых символов - можно будет получить количество всех символов
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
26.03.2019, 00:25
Да здравствует фирма MicroSoft! Это она, родимая, подсыпала песочку в подшипники всем будущим поколениям. Вот уже 50 лет как наши колеса скрипят! Это она придумала два символа для перевода строки, повторяя движение руки машинистки и разделила файлы на текстовые и бинарные. Это она, родимая, придумала обратный слэш для разделения директорий. Это она, заботливая мама, не стала различать в именах файлов заглавные буквы от строчных.
Нет, без нежности и благодарности эту фирму и ее почти бессменного руководителя и нашего благодетеля Билла вспоминать нельзя!
Я думаю, суммарные потери от этих решений уже составляют человеко-века! Зато, Билл - один из богатейших людей планеты. Да мне не жалко - пусть его. Все равно не расплатится...
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2019, 00:25
Помогаю со студенческими работами здесь

Найти количество сочетаний символов в файле
Дан текстовый файл, в котором записано много строк. Нужно считать их и узнать сколько раз в них встречается сочетание символов := . Вроде...

Определить количество различных типов символов в файле
Помогите написать эту программу... :cry: &quot;Напишите программу , чтобы определить количество различных типов символов в файловой...

Подсчитать количество символов во введенном файле и вывести результат на экран
программа считает колво символов в введенноим файле и выводи это колво на экран помогите исравить допустим 30 символов в файле 3 строки...

Программа, подсчитыващая количество символов с одинаковыми кодами ASCII в текстовом файле (Linux)
(для чтения иди записи-функции (f)gets(), (f)puts()) Программа, подсчитыващая количество символов с одинаковыми кодами ASCII в текстовом...

Как подсчитать количество символов "=" в файле?
Как подсчитать количество &quot;=&quot; в файле и вывести это количество на экран? Очень нужно. Заранее спасибо


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru