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

Проверка на системные слова

05.03.2017, 20:41. Показов 750. Ответов 0
Метки с (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добра. Есть небольшая проблема. Проверка на системные слова работает некорректно. Вместе с файлами "con.txt" она бракует такие файлы как "1.con.txt", к тому же нужно, чтобы она считывала только файлы с расширением .txt
Пожалуйста, помогите исправить. Проблема начиная со строчки 51.

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <conio.h>
 
using namespace std;
using std::cout;
char Gl[10] = { 'A', 'E', 'I', 'O', 'U', 'Y' };
char Gl_M[10] = { 'a', 'e', 'i', 'o', 'u', 'y' };
char Sog[21] = { 'B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Z' };
const int sysWordsLength = 12;
string sysWords[sysWordsLength] = { "CON", "AUX", "CLOCK$", "COM1", "COM2", "COM3", "COM4", "LPT1", "LPT2", "LPT3", "PRN", "NUL" };
string Del(string);
bool provNaGlas(int, string);
int KolvoGlas(string);
bool nextIsL(int, string);
bool GlInEnd(int, string);
bool moreOneSog(int, string);
bool nextIsW(int, string);
 
 
string regToUp(string str) 
{
    string result;
    for (int i = 0; i < str.length(); i++)
    {
        result += toupper(str[i]);
    }
    return result;
}
 
void main()
{
    setlocale(0, "");
    string path, str;
    cout << "Введите путь к файлу: " << endl;
    cin >> path;
 
    ifstream fin(path);
    bool isRead = fin.is_open();
    if (isRead)
    {
        fin.seekg(0, ios_base::end);
        isRead = (fin.tellg() > 0);
    }
 
    string temp = regToUp(path);
    int w1, w2, w3;
 
    for (int i = 0; i < sysWordsLength; ++i)
    {
        w1 = temp.find(sysWords[i]);    
        w2 = w1 + sysWords[i].length();
        
        if ((w1 >= 0) && ((w2 >= temp.length()) || (w2 < temp.length()) 
            && ((temp[w2] == '\\') || (temp[w2] == '/') || (temp[w2] == '.')))) // 
        {
            cout << "Путь содержит системные слова. \n";
            system("pause");
            return;
        }
    }
    //проверка на системные слова
 
    fin.seekg(0);
 
    if (fin) //проверка на существование файла
    {
        if (isRead)
        {
            while (!fin.eof())
            {
                fin >> str;
                cout << str << " ";
            }
            fin.seekg(0);
            cout << "\n\n\n\n";
            while (!fin.eof())
            {
                fin >> str;
                if (KolvoGlas(str) > 1)
                {
                    str = Del(str); // функция деления на слоги
                }
                cout << str << " ";
            }
        }
        else
        {
            cout << "Файл пуст!";
        }
    }
    else
        cout << "Файл не существует!";
    cout << endl << endl;
    char a = _getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2017, 20:41
Ответы с готовыми решениями:

Некорректная проверка на системные слова
Здравствуйте. Есть небольшая проблема. Проверка на системные слова работает некорректно. Вместе с файлами &quot;con.txt&quot; она бракует...

Системные базы данных и системные таблицы
Где бы посмотреть описание системных баз данных с точки зрения работы пользователя? Чтобы описывалось в ходе каких действий, какие таблицы...

Проверка слова
Мне нужен код на проверку слова из (Словаря).txt Пример: Ввод слова в строку после чего он проверяется через словарь, и если есть такое...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2017, 20:41
Помогаю со студенческими работами здесь

Проверка слова
Суть в том, что есть 2 Edit и 1 кнопка, по действию button1.click нужно чтобы выполнялось условие задачи №1. Задано предложение,...

Проверка слова на палиндром
Какой будет код для проверки слова на палиндром? очень срочно Например вводим слово казак и нам выдаёт это слово является палиндром ...

Проверка слова на палиндром
Всем привет, есть такая задача нужно сделать метод проверяющий слова на палиндром. Условия такие: - Можно использовать указатели. -...

Проверка на симметричность слова
void main() { char line; printf(&quot;vvedite stroku\n&quot;); scanf(&quot;%s&quot;,line); for (int i=strlen(line)-1,j=0; i!=strlen(line)/2; i--,j++)...

Проверка на перевод слова
Здравствуйте. Программа выводит английское слово из массива и предлагает пользователю ввести перевод этого слова. Подскажите, как проверить...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru