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

найти количество символов - C++

Войти
Регистрация
Восстановить пароль
 
Hunger Cannibal
2 / 2 / 0
Регистрация: 17.04.2013
Сообщений: 15
06.06.2013, 09:53     найти количество символов #1
Приветствую всех! Имеется следующая задача:
Напишите программу, которая открывает текстовый файл, читает его символ за символом до самого конца и сообщает количество символов в файле.
файл создал, в нём 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 пробелов.
где ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 09:53     найти количество символов
Посмотрите здесь:

Найти количество символов в строке C++
C++ Дана строка символов. Найти количество слов начинающихся на A и заканчивающихся на D
Cтрока: Найти общее количество символов «+» и «*» C++
C++ Найти количество цифр в строке символов, используя функции
Дано строку. Найти количество символов препинання(.,!?: C++
Строка: Найти наибольше количество идуших подряд одинаковых символов C++
Найти в массиве символов количество слов, начинающихся с буквы b C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
VirchKS
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 6
06.06.2013, 10:21     найти количество символов #2
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();
}
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.06.2013, 10:28     найти количество символов #3
Цитата Сообщение от Hunger Cannibal Посмотреть сообщение
isprint () и isbiank () работают почемуто неадекватно - isprint выдаёт 3 символа, isblank - 0 пробелов.
А где вообще вызов этих функций?
Hunger Cannibal
2 / 2 / 0
Регистрация: 17.04.2013
Сообщений: 15
06.06.2013, 10:38  [ТС]     найти количество символов #4
ну так убрал, потому что не работают ). было так:
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();
}
Спасибо, да работает, а где у меня ошибка не подскажите?
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.06.2013, 10:56     найти количество символов #5
Если нужно определить размер файла, то просто:
C++
1
2
ifstream file( "example.txt", ios::binary | ios::ate);
return file.tellg();
VirchKS
0 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 6
06.06.2013, 10:59     найти количество символов #6
Спасибо, да работает, а где у меня ошибка не подскажите?
inFile >> ch; не работает с пробелами, т. е. файл считывается по словам.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2013, 11:03     найти количество символов
Еще ссылки по теме:

C++ В строке найти количество встречающихся рядом символов соседних по алфавиту
В тексте найти общее количество символов-разделителей C++
Найти наибольшее количество одинаковых символов расположенных подряд C++
C++ Как найти количество символов в строке до определённого знака?
C++ Strchr(), Найти суммарное количество вхождений символа в заданный массив символов

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

Или воспользуйтесь поиском по форуму:
Hunger Cannibal
2 / 2 / 0
Регистрация: 17.04.2013
Сообщений: 15
06.06.2013, 11:03  [ТС]     найти количество символов #7
Нет, в задании именно количество символов. А того, что вы написали я ещё не знаю.

Добавлено через 3 минуты
Цитата Сообщение от VirchKS Посмотреть сообщение
inFile >> ch; не работает с пробелами, т. е. файл считывается по словам.
Как всё просто. Нужно будет ещё почитать на эту тему ).
Yandex
Объявления
06.06.2013, 11:03     найти количество символов
Ответ Создать тему
Опции темы

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