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

Visual Studio 2012 Ошибка при компиляции программы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.59
Affteron
7 / 0 / 1
Регистрация: 14.09.2013
Сообщений: 19
14.09.2013, 18:36     Visual Studio 2012 Ошибка при компиляции программы #1
Здравствуйте. Возникла проблема при компиляции данной программы:
Программа

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "string"
#include "iostream"
 
using namespace std;
 
int main()
{
    string str;
    string::size_type pos=0, k=0;
    cout<<"Enter string:"<<endl;
    getline(cin, str);
    while(k<str.length())
    {
        if(isdigit(str[k]))
            str.erase(k,1);
        else k++;
    }
    cout<<"String="<<str<<endl;
    system("pause");
    return 0;
}

При выполнении данной программы возникает ошибка:
Ошибка

Microsoft Visual C++ Runtime Library

Debug Assertion Failed!

Program: ...cuments\Visual Studio
2012\Projects\Задача3\Debug\Задача3.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c
Line: 56

Expression: c >= -1 && c <= 255

For information on how you program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)

Прервать Повтор Пропустить

Ошибка исчезает при изменении конфигурации решения с Debug на Release. На втором компьютере всё нормально работает и с Debug. Очень надеюсь на вашу помощь. Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
16.09.2013, 07:33     Visual Studio 2012 Ошибка при компиляции программы #2
C++
1
isdigit((unsigned char)str[k])
Affteron
7 / 0 / 1
Регистрация: 14.09.2013
Сообщений: 19
16.09.2013, 10:57  [ТС]     Visual Studio 2012 Ошибка при компиляции программы #3
Огромное спасибо!) Действительно помогло) Если не сложно, можете объяснить в чём была причина ошибки?) Я новичок в C++ и хотелось бы узнать)))
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.09.2013, 12:15     Visual Studio 2012 Ошибка при компиляции программы #4
Цитата Сообщение от Affteron Посмотреть сообщение
можете объяснить в чём была причина ошибки?
Знаковый char и коды символов больше 127 (например, русские символы). Если такие коды привести к int, который требуется для функций cctype, то получатся отрицательные значения, меньшие чем -1. Функции cctype обрабатывают значения от -1 до 255.
Yandex
Объявления
16.09.2013, 12:15     Visual Studio 2012 Ошибка при компиляции программы
Ответ Создать тему
Опции темы

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