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

Считать из файла, подсчитать количество знаков препинания, записать в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ учебный план http://www.cyberforum.ru/cpp-beginners/thread903972.html
Всем привет! Нашел курсы по С++ и хочу спросить у знающих совет по поводу плана обучения. Скажите пожалуйста насколько хорошо составлена программа и на что можно рассчитывать дальше с таким багажом...
C++ Контейнер hash_map Здорова! Нужно создать контейнер hash_map это тот же контейнер как и map, только он в разы иногда раз в 10-20 быстрее осуществляет поиск элементов по ключу чем стандартный контейнер map, поэтому... http://www.cyberforum.ru/cpp-beginners/thread903969.html
C++ Работа с файлами (подсчитать количество слов в файле, содержащих нечетное количеством букв)
Первый раз работаю с файлами и тут у меня проблемы. После компиляции выводит неправильный ответ и выбивает: 'Lab 8.exe': Loaded 'D:\Projects\C++\Training\Lab 8\debug\Lab 8.exe', Binary was not...
C++ ДИНАМИЧЕСКИЕ МАССИВЫ.Найти номер строки, в которой сумма отрицательных нечетных элементов самая большая
не знаю почему не правильно считает ведь все правильно сделал?(( подскажите кто нибуть Пожалуста #include <iostream> #include <cmath> #include <cstdio> #include <cstdlib> #include <iomanip>...
C++ Как спростить код ? рекурсия (ввести последовательность чисел (окончание ввода - 0) и вывести их вобратной последовательности) http://www.cyberforum.ru/cpp-beginners/thread903901.html
#include <iostream> using std::cout; using std::endl; using std::cin; const int n=100; int arr = {}; int i = 0; int count = 0;
C++ Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее число раз СРОЧНО!!! ПОМОГИТЕ ПОЖАЛУЙСТА,ОЧЕНЬ НУЖНО!!! ЗАРАНИЕ БЛАГОДАРЮ!) Дан*массив.*Выберите*из*него*все*элементы,*которые*встречаются*в*массиве*наибольшее*число*раз. подробнее

Показать сообщение отдельно
atoi
130 / 124 / 51
Регистрация: 18.05.2013
Сообщений: 385
Завершенные тесты: 3
17.06.2013, 12:56
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
33
34
35
36
37
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
        setlocale (0, "");
    ifstream inp ("text.txt");
    char delims[]="«»:(),.;!-?";
    if (!inp)
    {
        cout<<"Ошибка чтения файла!"<<endl;
        return 1;
    }
    char str [30][80];
    int k=0; //кол-во строк в файле
    int n=0; //кол-во знаков препинания
 
    while (!inp.eof())
    {
        inp.getline(str[k],79);
        for (int i=0; i<=80; i++)
        {
            for (int j=0; j<=10; j++)
        if (str[k][i]==delims[j])
            n++;
        }
        k++;
    }
    
    inp.close();
    cout<<"Количестов знаков препинания: "<<n<<endl;
    ofstream out("text.txt", ios::app);
    out<<"\nКоличестов знаков препинания: "<<n;
    out.close();
    return 0;
}
Содержимое text.txt
Код
« Враг, что мудр и много знает, друга может быть ценней.
Мудрость уважать пристало у врагов и у друзей. »
Выводит и записывает, что 6 знаков препинания, считая и кавычки.

Добавлено через 12 часов 32 минуты
вот другой вариант с использованием ф-ции ispunct(), на мой взгляд, гораздо лучше моего первого варианта.

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
33
34
35
36
37
38
39
#include <iostream>
#include <fstream>
#include <locale>
using namespace std;
 
int main()
{   
    locale loc ("Russian_Russia");
    setlocale (0, "");
    ifstream inp ("text.txt");
    if (!inp)
    {
        cout<<"Ошибка чтения файла!"<<endl;
        return 1;
    }
    char str [30][80];
    int k=0; //кол-во строк в файле
    int n=0; //кол-во знаков препинания
 
    while (!inp.eof())
    {
        inp.getline(str[k],79);
 
        for (int i=0; i<=80; i++)
        {
        if (ispunct(str[k][i], loc))
            n++;
        }
        
        k++;
    }
    
    inp.close();
    cout<<"Количестов знаков препинания: "<<n<<endl;
    ofstream out("text.txt", ios::app);
    out<<"\nКоличестов знаков препинания: "<<n;
    out.close();
    return 0;
}
3
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru