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

Неполадки с isalpha - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ знаки после запятой , формат float http://www.cyberforum.ru/cpp-beginners/thread943505.html
я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная i равнялась флоату с одним знаком после запятой , не вот так 1.1234567 чтобы равна была, а вот так 1.1 Не хотелось бы услышать ответ - "делением на 10 или на 1000" - уже пробовал , геморно очень , может есть специальные функции или операторы?
C++ Как исправить этот код? Помогите исправить код. Знаю в чем проблема,но не знаю как решить. В книге дается схожий пример,и там все так же. Суть в том,что в классе задается статическая переменная-член и статическая функция ,которая дает возможность получить доступ к стат. переменной( которая находится в секции private). Но нужно ведь эту переменную инициализировать? Как исправить следующий код? #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread943504.html
подскажите среду с компилятором под Win64 C++
У меня есть проект на стареньком борланде 6. До недавнего времени мне его возможностей хватало, однако не так давно столкнулся с нехваткой адресного пространства. Пришёл к очевидному выводу, что надо переходить на что-нибудь новенькое. Поставил RAD Studio XE3, но оказалось что под win 64 можно компилировать только из делфи, а в делфи я никогда не работал, а опять переучиваться, честно-говоря,...
C++ Крестики нолики
Доброго времени суток, недавно, я решил написать программу Крестики нолики, опираясь на свои знания в С++, но при компиляции кода компилятор ошибок не выдает, но при запуске появляеться вот это: "an access violation (segmentation fault) raised in your program" #include <iostream> char Movies ={ {'-','-','-'}, {'-','-','-'}, {'-','-','-'} };
C++ Убрать туман войны в игре http://www.cyberforum.ru/cpp-beginners/thread943470.html
Какие инструменты/алгоритмы требуются, чтобы убрать туман войны в игре.. например Company of heroes 2 ? Что-то вроде трейнера... Предположим С++ с ассемблером знаю, как про ))
C++ strstr из библиотеки cstring, как должно функционировать? Вот у меня есть описание, переписано из книги: char *strstr(const char *Str1, const char *Str2) - находит первое вхождение в строку Str1 строки Str2. Если строка Str2 найдена, возвращает указатель на нее в строке Str1. В противном случае возвращает нулевой указатель (NULL).  Вот программа: #include <iostream> using std::cin; подробнее

Показать сообщение отдельно
Chernobyl
211 / 211 / 67
Регистрация: 30.09.2012
Сообщений: 526
25.08.2013, 20:36     Неполадки с isalpha
Ниже я привел код самой функции.
Суть в том, что я хочу открыть файл и прочитать с него только цифры,английские буквы,разделители и знаки пунктуации.То есть если символ являеться таковым, он заноситься в вектор и будет в дальнейшем использован.

Например в файле лежит дальнейшее - rjnjhst jcyjdfkb vtnfk? - все хорошо, но если там лежит строка вида «njkcnjt», то всё,прога вылетает с ошибками, что что-то больше равно -1 и меньше ровно 255 и всё.Если убрать проверку(тот if, то всё норм и там и там) То есть,как я сейчас понимаю, isalpha не ладит с символом « , из-за чего всё летит. Но я то и хочу использовать isalph'у для того,чтобы эти и подобные символы туда не попадали.

Если переписать код как в варианте 2,то всё уже норм,но теперь просто мучает вопрос - почему в первом варианте всё улетает?

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
    void read_from_file(){ //вариант 1
    
    ifstream open("ofile.txt");  
    string word;
    while(getline(open,word)){ 
        for(int i=0;i<word.size();i++){
            if( isalpha(word[i]) || isdigit(word[i]) || isspace(word[i]) || isprint(word[i]))
            text.push_back(word[i]);
        }
                for(int i=0;i<text.size();i++) 
            cout<<text[i]; }
        }
 
 
    void read_from_file(){//вариант второй,выкололи те символы
    
    ifstream open("ofile.txt");
    string word;
    while(getline(open,word)){ 
        for(int i=0;i<word.size();i++){
            if(word[i]!='«' && word[i]!='»'){ //вот эта строка новая
            if( isalpha(word[i]) || isdigit(word[i]) || isspace(word[i]) || isprint(word[i]))
            text.push_back(word[i]);
            }
        }
 
        }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru