0 / 0 / 0
Регистрация: 26.12.2014
Сообщений: 4
1

Подсчет количества символов русского алфавита в текстовом файле

26.12.2014, 10:07. Показов 4922. Ответов 8
Метки нет (Все метки)

Здравствуйте, нужна ваша помощь)
Допустим у нас имеется текстовой файл Test.txt( в нем находятся русские буквы и другие... символы и тд), необходимо подсчитать количество, только русские буквы(символы) из нашего файла.

Имеется данная программа, но она не производит подсчет русских символов, возможно что-то с кодировкой напутал, помогите пожалуйста

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
30
31
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
using std::cout;
using std::endl;
using std::ifstream;
 
int main()
{
    int rus = 0;
    int eng = 0;
    char ch;
    ifstream fin("D:\rise data\мои документы\visual studio 2013\Projects\Project4\test.txt"); // открываем файл для чтения
    // посимвольно считываем из файла
    while (fin.get(ch))
    {
        // диапазоны английских букв в таблице ASCII
        if (((ch >= (char)0x41) && (ch <= (char)0x5A)) || ((ch >= (char)0x61) && (ch <= (char)0x7A)))
            eng++;
        // диапазон русских букв в таблице ASCII
        if ((ch >= (char)0xC0) && (ch <= (char)0xFF))
            rus++;
    }
    fin.close();
    cout << "Number of russian letters: " << rus << endl;
    cout << "Number of english letters: " << eng << endl;
    _getch();
    return 0;
}
Добавлено через 24 минуты
Помогите пожалуйста
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2014, 10:07
Ответы с готовыми решениями:

Подсчет количества слов в текстовом файле, содержащем целые числа и слова русского и английского языков
Помогите, пожалуйста, с лабораторной:Написать командный файл по подсчету количества слов в...

Подсчет количества слов длиной 5 символов в текстовом файле
Составить код, которая подсчитывает количество слов в текстовом файле длина которых равна числу 5 ...

Подсчет количества слов в текстовом файле
Подсчет количества слов в текстовом файле, содержащем целые числа и слова русского и английского...

Подсчет количества абзацев в текстовом файле
здравствуйте!!помогите пожалуйста решить задачу!!мне дан текстовый файл,нужно посчитать в нем...

8
2644 / 2220 / 239
Регистрация: 03.07.2012
Сообщений: 8,060
Записей в блоге: 1
26.12.2014, 10:25 2
Для начала сделай "ch" беззнаковым, (char) убери.
0
Эксперт С++
2924 / 1273 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
26.12.2014, 10:38 3
one_rise, в задании ничего не сказано о том, что кодировка будет именно ASCII..... Я бы написал код в виде (условно)
C++
1
if (ch >= 'А' && ch <= 'Я') .....
1
0 / 0 / 0
Регистрация: 26.12.2014
Сообщений: 4
26.12.2014, 10:48  [ТС] 4
Цитата Сообщение от CheshireCat Посмотреть сообщение
one_rise, в задании ничего не сказано о том, что кодировка будет именно ASCII..... Я бы написал код в виде (условно)
C++
1
if (ch >= 'А' && ch <= 'Я') .....
Убрал англ язык, переделал условно, но ошибок нет, но подсчет из txt в консоль приходит в виде нуля, то есть получается не считывает, не знаю в чем ошибка, если не сложно поправь пожалуйста
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
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
using std::cout;
using std::endl;
using std::ifstream;
 
int main()
{
    int rus = 0;
    char ch;
    ifstream fin("D:\rise data\мои документы\visual studio 2013\Projects\Project4\test.txt"); // открываем файл для чтения
    // посимвольно считываем из файла
    while (fin.get(ch))
    {
        
                    
        if (ch >= 'А' && ch <= 'Я')
          rus++;
    }
    fin.close();
    cout << "Number of russian letters: " << rus << endl;
    _getch();
    return 0;
}
0
Эксперт PHP
3101 / 2586 / 1219
Регистрация: 14.05.2014
Сообщений: 7,231
Записей в блоге: 1
26.12.2014, 10:57 5
Цитата Сообщение от one_rise Посмотреть сообщение
ifstream fin("D:\rise data\мои документы\visual studio 2013\Projects\Project4\test.txt");
проверьте, открылся ли файл и один обратный слэш замените везде на два.
0
0 / 0 / 0
Регистрация: 26.12.2014
Сообщений: 4
26.12.2014, 11:24  [ТС] 6
Все так же(

Добавлено через 22 минуты
Цитата Сообщение от zer0mail Посмотреть сообщение
Для начала сделай "ch" беззнаковым, (char) убери.
Не получается так
0
Эксперт С++
2924 / 1273 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
26.12.2014, 11:33 7
Лучший ответ Сообщение было отмечено one_rise как решение

Решение

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
30
31
32
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
using std::cout;
using std::endl;
using std::ifstream;
 
int main()
{
    int rus = 0;
    char ch;
    ifstream fin("D:\\Temp\\test.txt"); // открываем файл для чтения
    // посимвольно считываем из файла
    while (fin.get(ch))
    {
        if ((ch >= 'А' && ch <= 'Я') || (ch >= 'а' && ch <= 'я'))
          rus++;
    }
    fin.close();
    cout << "Number of russian letters: " << rus << endl;
    _getch();
    return 0;
}
 
// D:\Temp\test.txt:
//
// мама мыла раму. саша ела кашу.
// such cool violet flower.
//
// Number of russian letters: 23
Там еще засада может оказаться в том, что интервалы 'А'...'Я' и 'а'...'я' могут оказаться не сплошными. Но с этим уже сам разберись, оно несложно.
2
0 / 0 / 0
Регистрация: 26.12.2014
Сообщений: 4
26.12.2014, 11:48  [ТС] 8
Цитата Сообщение от CheshireCat Посмотреть сообщение
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
30
31
32
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <conio.h>
 
using std::cout;
using std::endl;
using std::ifstream;
 
int main()
{
    int rus = 0;
    char ch;
    ifstream fin("D:\\Temp\\test.txt"); // открываем файл для чтения
    // посимвольно считываем из файла
    while (fin.get(ch))
    {
        if ((ch >= 'А' && ch <= 'Я') || (ch >= 'а' && ch <= 'я'))
          rus++;
    }
    fin.close();
    cout << "Number of russian letters: " << rus << endl;
    _getch();
    return 0;
}
 
// D:\Temp\test.txt:
//
// мама мыла раму. саша ела кашу.
// such cool violet flower.
//
// Number of russian letters: 23
Там еще засада может оказаться в том, что интервалы 'А'...'Я' и 'а'...'я' могут оказаться не сплошными. Но с этим уже сам разберись, оно несложно.
Спасибо большое))
0
10 / 10 / 0
Регистрация: 20.11.2012
Сообщений: 163
Записей в блоге: 1
24.11.2016, 16:56 9
а можно эту программу сделать с формой и чтобы можно было выбирать нужный файл?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.11.2016, 16:56
Помогаю со студенческими работами здесь

Подсчет количества цифр в текстовом файле
написать программу,которая в текстовом файле,состоящем из строк не более 60 символов,находит...

Подсчет количества строк в текстовом файле
Здравствуйте, есть 2 файлика Excel. Необходимо написать скрипт, который подсчитывал бы кол-во...

Подсчёт количества строк в текстовом файле
Создать текстовый файл с произвольным текстом и через меню предусмотреть следующие действия: 1)...

Подсчет количества предложений в текстовом файле
Сама задача:Подсчитать число предложений в заданном текстовом файле (текст на английском языке)....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru