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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ учебный план http://www.cyberforum.ru/cpp-beginners/thread903972.html
Всем привет! Нашел курсы по С++ и хочу спросить у знающих совет по поводу плана обучения. Скажите пожалуйста насколько хорошо составлена программа и на что можно рассчитывать дальше с таким багажом знаний. Спасибо. Интенсивность - 2 часа, 5 раз в неделю, 3 месяца (лекции/практика) ТЕМА 1: Базовые понятия С и С + + Компиляция. Область видимости. Понятие переменной. Базовые характеристики...
C++ Контейнер hash_map Здорова! Нужно создать контейнер hash_map это тот же контейнер как и map, только он в разы иногда раз в 10-20 быстрее осуществляет поиск элементов по ключу чем стандартный контейнер map, поэтому если нужен быстрый поиск, то советуют использовать свой hash_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 built with debug information. 'Lab 8.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded. 'Lab 8.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded. The program ' Lab 8.exe:...
C++ ДИНАМИЧЕСКИЕ МАССИВЫ.Найти номер строки, в которой сумма отрицательных нечетных элементов самая большая
не знаю почему не правильно считает ведь все правильно сделал?(( подскажите кто нибуть Пожалуста #include <iostream> #include <cmath> #include <cstdio> #include <cstdlib> #include <iomanip> using namespace std; int main() { int n, m, k;
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
129 / 123 / 51
Регистрация: 18.05.2013
Сообщений: 377
Завершенные тесты: 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;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru