Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
4 / 4 / 2
Регистрация: 27.02.2018
Сообщений: 15
1

Debug assertion failed при анализе символов из файла - как исправить?

19.05.2018, 19:38. Показов 1131. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно код компилится, но выдает ошибку Debug assertion failed.
Помогите исправить пожалуйста.
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
/* 16.  Напишите программу, которая принимает параметр – имя текстового файла и открывает его для чтения. 
Если файла нет – печатает сообщение и завершает работу. Прочитайте все символы из этого файла, но выводите 
на экран только русские буквы и знаки препинания. */
 
 
#include <fstream>
#include <iostream>
 
using namespace std;
 
void main() {
    setlocale(LC_ALL, "rus");
 
    ifstream file("file-18.txt");
 
    if (!file)
    {
        cout << "File not found\n\n";
    }
    else
    {
        cout << "Файл открыт! Русские символы в нём: \n\n";
        char text[256];
        file >> text;
        char buff[256];
        for (int i = 0; ; i++) {
            if ((text[i] >= 'a' && text[i] <= 'z') || (text[i] >= 'A' && text[i] <= 'Z') || isdigit(text[i]) != 0) {
                continue;
            }
            else {
                strcpy_s(buff, &text[i]);
                cout << buff;
            }
        }
    }
    file.close();
    cin.get();
    cin.get();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2018, 19:38
Ответы с готовыми решениями:

Debug assertion failed при чтении из файла
Не понимаю почему не работает программа. #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt;...

Debug Assertion Failed при освобождении памяти
Простая программка вылетает с ошибкой Debug Assertion Failed. Код вот такой: #include...

Debug assertion failed при освобождении памяти
Создал массив строк используя new. Весь код выполняется как нужно, но вместо спокойного выхода из...

При работе с файлом появляется ошибка debug assertion failed
При работе с файлом вылезает ошибка debug assertion failed.Как устранить ошибку? Помогите,...

4
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
19.05.2018, 19:53 2
Вот зачем это ?
C++
1
2
strcpy_s(buff, &text[i]);
                cout << buff;
Напечатать один символ? Вот

C++
1
   cout << text[i];
Debug assertion failed Значит isdigit не пропусткает русские символы.

А где условие окончания цикла ?
C++
1
for (int i = 0; ; i++) {
Так хотя бы :
C++
1
2
    size_t len = strlen(text);
    for (size_t i = 0; i < len; i++) {
1
nd2
3437 / 2816 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
19.05.2018, 19:56 3
Цитата Сообщение от Lunmijo Посмотреть сообщение
C++
1
isdigit(text[i])
C++
1
isdigit((unsigned char)text[i])
1
21 / 21 / 22
Регистрация: 13.05.2018
Сообщений: 71
19.05.2018, 20:04 4
Цитата Сообщение от Lunmijo Посмотреть сообщение
|| isdigit(text[i]) != 0)
Или так
C++
1
 ||text[i] >= '0' &&  text[i] <= '9') {
1
4 / 4 / 2
Регистрация: 27.02.2018
Сообщений: 15
19.05.2018, 20:09  [ТС] 5
Спасибо большое, поправил!
Почему для печати на экран сохранял в отдельную переменную - хз, переутомление сказалось видать, кодил ночью лабу
Рабочий вариант (вдруг кому-то пригодится):
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 <fstream>
#include <iostream>
 
using namespace std;
 
void main() {
    setlocale(LC_ALL, "rus");
 
    ifstream file("file.txt");
 
    if (!file)
    {
        cout << "File not found\n\n";
    }
    else
    {
        cout << "Файл открыт! Русские символы в нём: \n\n";
        char text[256];
        file >> text;
        for (int i = 0; i < strlen(text); i++) {
            if ((text[i] >= 'a' && text[i] <= 'z') || (text[i] >= 'A' && text[i] <= 'Z') || isdigit((unsigned char)text[i])) {
                continue;
            }
            else {
                cout << text[i] << " ";
            }
        }
    }
    file.close();
    cin.get();
    cin.get();
}
0
19.05.2018, 20:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.05.2018, 20:09
Помогаю со студенческими работами здесь

При вызове деструктора возникает ошибка Debug Assertion Failed!
вот код программы #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class...

Ошибка при выводе в текстовый файл (Debug assertion failed)
Значит, такая ситуация: Надо с помощью разложения в ряд Тейлора посчитать арктангенс и вывести...

Ошибка debug assertion failed, как избавиться?
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include...

Debug assertion failed!
пишу библиотеку функции для работы с массивом. В функции вставки со сдвигом возникает ошибка при...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru