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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Moonlit
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 36
#1

Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") - C++

10.10.2016, 07:55. Просмотров 169. Ответов 10

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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
///////////////////////////////////////////////////////////////////////////////
//В текстовом файле специальные термины выделены
//кавычками. Переписать файл так, чтобы термины выделялись
//прописными буквами.
///////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <cctype>
#include <fstream>
#include <iostream>
#include <string>
typedef std::string         T_str;
typedef T_str::size_type    T_pos;
///////////////////////////////////////////////////////////////////////////////
enum    T_symb_state
{
    OTHER_SYMB,
    QUOTE_SYMB,
    SPACE_SYMB
};
///////////////////////////////////////////////////////////////////////////////
enum    T_term_state
{
    NO_TERM,
    START_TERM,
    IN_TERM,
    FINISH_TERM
};
///////////////////////////////////////////////////////////////////////////////
T_symb_state    get_symb_state(char    symb)
{
    T_symb_state    res{ OTHER_SYMB };
 
    if (
        symb == '"'
        )
    {
        res = QUOTE_SYMB;
    }
    else if (
        std::isspace(symb)
        )
    {
        res = SPACE_SYMB;
    }
 
    return  res;
}
///////////////////////////////////////////////////////////////////////////////
T_term_state    get_term_state
(
    T_symb_state    symb_state,
    T_term_state    term_state
)
{
    T_term_state    res{ NO_TERM };
 
    switch (symb_state)
    {
    case    QUOTE_SYMB:
        res = term_state == IN_TERM
            ? FINISH_TERM
            : START_TERM;
        break;
 
    case    OTHER_SYMB:
        if (
            term_state == START_TERM
            || term_state == IN_TERM
            )
        {
            res = IN_TERM;
        }
 
    default:
        ;
    }//switch
 
    return  res;
}
///////////////////////////////////////////////////////////////////////////////
void    process_terms(T_str    &   str)
{
    T_term_state    term_state{ NO_TERM };
    T_pos           left_quote_ind{};
 
    for (T_pos i{}; i < str.size(); ++i)
    {
        auto
            symb_state = get_symb_state(str[i]);
 
        term_state = get_term_state
        (
            symb_state,
            term_state
        );
 
        switch (term_state)
        {
        case    START_TERM:
            left_quote_ind = i;
            break;
 
        case    FINISH_TERM:
            for (
                T_pos
                j = left_quote_ind + 1;
                j   <   i;
                ++j
                )
            {
                str[j] = std::toupper(str[j]);
            }
            break;
 
        default:
            ;
        }//switch
    }//for
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    std::ifstream   ifile("f.txt");
 
    if (!ifile)
    {
        std::cout << "bad file" << std::endl;
 
        exit(1);
    }//if
 
    std::ofstream   ofile("ff.txt");
 
    T_str       cur_str;
 
    while (
        getline(ifile, cur_str)
        )
    {
        process_terms(cur_str);
        ofile << cur_str << '\n';
    }
    ofile << std::endl;
 
    std::cout << "finish" << std::endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2016, 07:55     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл")
Посмотрите здесь:

C++ Ошибка при компиляции: "Не удается найти указанный файл"
Не удается запустить программу. Не удается найти указанный файл C++
C++ Ошибка "Не удается найти указанный файл"
C++ Выдает ошибку c:\proect\8\8\8.cpp(60): error C2040: ==: "char [20]" отличается по уровням косвенного обращения от "int"
C++ Компилятор выдает ошибку: error C2041: недопустимая цифра "8" для основания "8"
C++ Ошибка "системе не удается найти указанный путь"
Программа не выполняется: "Не удается найти указанный файл" C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nd2
1528 / 1267 / 429
Регистрация: 29.01.2016
Сообщений: 3,911
10.10.2016, 08:28     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #2
Кто и когда выдаёт ошибку? При компиляции есть ошибки?
Moonlit
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 36
10.10.2016, 08:32  [ТС]     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #3
Цитата Сообщение от nd2 Посмотреть сообщение
Кто и когда выдаёт ошибку? При компиляции есть ошибки?
выдавал ошибку при компиляции. Но сейчас комплируется, но пишет только bad file и не перезаписывает
nd2
1528 / 1267 / 429
Регистрация: 29.01.2016
Сообщений: 3,911
10.10.2016, 08:33     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #4
Цитата Сообщение от Moonlit Посмотреть сообщение
но пишет только bad file
Файл f.txt должен быть в папке проекта (там, где файл с main() находится).
Moonlit
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 36
10.10.2016, 08:43  [ТС]     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #5
Цитата Сообщение от nd2 Посмотреть сообщение
Файл f.txt должен быть в папке проекта (там, где файл с main() находится).
спасибо, переложила. Но теперь выходит вот такая ошибка при попытке скомпилировать
Миниатюры
Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл")  
gru74ik
10.10.2016, 08:44
  #6

Не по теме:

Зато сразу понятно, кто автор кода

Moonlit
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 36
10.10.2016, 08:47  [ТС]     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #7
Цитата Сообщение от gru74ik Посмотреть сообщение
Не по теме:
Зато сразу понятно, кто автор кода
и можно ли узнать кто?)
nd2
1528 / 1267 / 429
Регистрация: 29.01.2016
Сообщений: 3,911
10.10.2016, 08:49     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #8
Цитата Сообщение от Moonlit Посмотреть сообщение
str[j] = std::toupper(str[j]);
Там, где используешь функции cctype, приводи параметр к unsigned char, иначе, при кириллице и знаковом char, будет эта ошибка.
Moonlit
0 / 0 / 0
Регистрация: 25.09.2016
Сообщений: 36
10.10.2016, 08:52  [ТС]     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #9
Цитата Сообщение от nd2 Посмотреть сообщение
Там, где используешь функции cctype, приводи параметр к unsigned char, иначе, при кириллице и знаковом char будет эта ошибка.
извините, если честно, я не очень поняла...
nd2
1528 / 1267 / 429
Регистрация: 29.01.2016
Сообщений: 3,911
10.10.2016, 08:54     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #10
Цитата Сообщение от Moonlit Посмотреть сообщение
при попытке скомпилировать
Это при запуске происходит, а не при компиляции. Сначала скомпилируй, потом, если нет ошибок, запускай.

Добавлено через 1 минуту
Цитата Сообщение от Moonlit Посмотреть сообщение
я не очень поняла...
Вот так пиши:
C++
1
str[j] = std::toupper((unsigned char)str[j]);
C++
1
std::isspace((unsigned char)symb)
и т.д.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.10.2016, 09:27     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл")
Еще ссылки по теме:

C++ Не удается запустить программу. Не удается найти указанный файл. Microsoft visual studio
C++ Найти ошибку в коде. Выдает "line 55 expresion str!=null"
C++ Visual studio 2015: "Не удается найти указанный файл" после компиляции
Не удается запустить программу в VS2010: "Не удается найти указанный файл" C++
IlLoadImage возвращает ошибку, что указанный файл не найден. "IL_COULD_NOT_OPEN_FILE" C++

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

Или воспользуйтесь поиском по форуму:
gru74ik
Модератор
Эксперт CЭксперт С++
3894 / 1652 / 188
Регистрация: 20.02.2013
Сообщений: 4,707
Записей в блоге: 21
10.10.2016, 09:27     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл") #11
Цитата Сообщение от Moonlit Посмотреть сообщение
и можно ли узнать кто?)
Известно кто. Сравните Ваш код с кодом вот в этой теме, например. Больше так на нашем форуме никто код не форматирует.

Цитата Сообщение от Moonlit Посмотреть сообщение
извините, если честно, я не очень поняла...
В гугле что ли забанили? Заголовочный файл cctype содержит объявление функций toupper(), isspace() и т.п.

Цитата Сообщение от nd2 Посмотреть сообщение
приводи параметр к unsigned char
Moonlit, читайте про приведение типов, оно же typecasting (type conversions).
Yandex
Объявления
10.10.2016, 09:27     Проверьте, пожалуйста, код (выдает ошибку "Не удается найти указанный файл")
Ответ Создать тему
Опции темы

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