Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 17.04.2013
Сообщений: 15

Найти количество символов в текстовом файле (не считает пробелы)

06.06.2013, 09:53. Показов 1949. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех! Имеется следующая задача:
Напишите программу, которая открывает текстовый файл, читает его символ за символом до самого конца и сообщает количество символов в файле.
файл создал, в нём 42 символа, прогу написал, но она не хочет считать пробелы!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
#include <cctype>
using namespace std;
int main()
{
    char ch;
    int symbol=0;
    ifstream inFile;
    inFile.open("test.txt");
    inFile >> ch;
    while (inFile.good())
        {
        ++symbol;
        inFile >> ch;
        }
    if (inFile.eof()) cout  << "Dostignut konec fayla!" << endl;
    cout << "Kolichestvo simvolov ravno " << symbol << endl;
    inFile.close();
    return 0;
}
isprint () и isbiank () работают почемуто неадекватно - isprint выдаёт 3 символа, isblank - 0 пробелов.
где ошибка?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.06.2013, 09:53
Ответы с готовыми решениями:

В текстовом файле заменить последовательность символов !?! на пробелы
Помогите.

Нужно написать код для программы, которая считает количество букв в текстовом файле
Ребят, нужно написать программу, которая в текстовом файле будет считать количество букв и выводить его на экран

Количество символов в текстовом файле
Доброго почти утра вам=) Такой вопрос, можно ли определить длину текстового файла? Файл открыл через fopen, а теперь нужно присвоить...

6
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 6
06.06.2013, 10:21
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
#include <iostream>
#include <fstream>
#include <cstdlib>
int main()
{
    std::ifstream inFile;
    std::string s;
    char str[40];
    int n,symbol=0;
    std::cout<<"Vvedite imja fajla: ";
    std::cin>>str;
    inFile.open(str);
    if (inFile.fail())
    {
        std::cout<<"Oshibka otkrytija fajla.";
        exit(1);
    }
    while(!inFile.eof())
    {
        getline(inFile,s);
        n=s.size();
        symbol=symbol+n;
    }
    std::cout<<"Kolichestvo simvolov ravno "<<symbol<<std::endl;
    inFile.close();
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
06.06.2013, 10:28
Цитата Сообщение от Hunger Cannibal Посмотреть сообщение
isprint () и isbiank () работают почемуто неадекватно - isprint выдаёт 3 символа, isblank - 0 пробелов.
А где вообще вызов этих функций?
0
2 / 2 / 0
Регистрация: 17.04.2013
Сообщений: 15
06.06.2013, 10:38  [ТС]
ну так убрал, потому что не работают ). было так:
C++
1
2
3
4
5
while (inFile.good())
        {
        if (isprint(ch)) ++symbol;
        inFile >> ch;
        }
выдавало 37 вместо 42

Добавлено через 7 минут
Цитата Сообщение от VirchKS Посмотреть сообщение
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
#include <iostream>
#include <fstream>
#include <cstdlib>
int main()
{
    std::ifstream inFile;
    std::string s;
    char str[40];
    int n,symbol=0;
    std::cout<<"Vvedite imja fajla: ";
    std::cin>>str;
    inFile.open(str);
    if (inFile.fail())
    {
        std::cout<<"Oshibka otkrytija fajla.";
        exit(1);
    }
    while(!inFile.eof())
    {
        getline(inFile,s);
        n=s.size();
        symbol=symbol+n;
    }
    std::cout<<"Kolichestvo simvolov ravno "<<symbol<<std::endl;
    inFile.close();
}
Спасибо, да работает, а где у меня ошибка не подскажите?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
06.06.2013, 10:56
Если нужно определить размер файла, то просто:
C++
1
2
ifstream file( "example.txt", ios::binary | ios::ate);
return file.tellg();
0
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 6
06.06.2013, 10:59
Спасибо, да работает, а где у меня ошибка не подскажите?
inFile >> ch; не работает с пробелами, т. е. файл считывается по словам.
0
2 / 2 / 0
Регистрация: 17.04.2013
Сообщений: 15
06.06.2013, 11:03  [ТС]
Нет, в задании именно количество символов. А того, что вы написали я ещё не знаю.

Добавлено через 3 минуты
Цитата Сообщение от VirchKS Посмотреть сообщение
inFile >> ch; не работает с пробелами, т. е. файл считывается по словам.
Как всё просто. Нужно будет ещё почитать на эту тему ).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.06.2013, 11:03
Помогаю со студенческими работами здесь

Количество символов в текстовом файле
Как найти количество символов в текстовом файле, включая пробелы? Код ниже считает без пробелов #include &quot;stdafx.h&quot; #include...

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

Подсчитать количество символов в текстовом файле
Здравствуйте, вот полное условие: Составить программу обмена местами двух любых элементов типизированного файла, в котором записаны...

посчитать количество символов в текстовом файле
Как посчитать количество символов в текстовом файле?

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru