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

Определение значения переменной в цикле - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Народ! Какая то у меня не понятка с проектом 100 раз писал а сейчас лажа http://www.cyberforum.ru/cpp-beginners/thread630945.html
:(Народ вот у меня с проектом не понятка, :(100 раз писал а сейчас вылетает аксес виолайшен ошибка. :(заманался все перепроверил и 3 раза переначинал и все тоже самое что случилось???? может что то...
C++ return и дестуктор как передают значение объекта ,созданного в функции через return ?При return вызывается его деструктор и передать значение из функции уже не могу .Что нужно написать / перегрузить ,какие модификаторы... http://www.cyberforum.ru/cpp-beginners/thread630944.html
Описать структуру с именем STUDENT C++
// sub22.cpp: определяет точку входа для консольного приложения. //Вариант 1 //1. Описать структуру с именем STUDENT, содержащую следующие поля: //• фамилия и инициалы; //• номер группы;...
Считывание из файла C++
Ребят, помогите, пожалуйста, новичку разобраться=) Есть файл, в котором расположена информация примерно такого содержания 1946 12 30 0 -519 0 -490 0 9999 9 0 2 0 1946 12 31 0 -528 0 -499 0...
C++ Принадлежность множеству http://www.cyberforum.ru/cpp-beginners/thread630915.html
На дельфи есть прекрасный оператор IN, который проверяет принадлежность множуству (я это так называю) То есть if Key IN then ... А как такое реализовать на С++?
C++ Задача на рекурсию Задание : Напишите функцию возведения в степень, которая работала бы как для положительных, так и для отрицательных значений n: a^(-n)=1/a^n. Что-то написал, только для отрицательных значений... подробнее

Показать сообщение отдельно
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.08.2012, 00:28
Такая запись допустима: 255.000.255.255. , 255.00.255.255. , 001.255.255.255. , 01.255.255.255. ? Имеются ввиду нули перед числами. Или только так должно пропускать: 1.0.255.255. ? Точка в конце обязательна? 255.255.255.255 , так нельзя, да?

Добавлено через 13 минут
Цитата Сообщение от alexey31415 Посмотреть сообщение
функция в которой вызввается correct
Я пока посмотрю, а вы испытывайте код:
Код
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
#include <cctype>
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
 
bool correct(string id); 
 
int main()
{
    setlocale(0, "");
    
    string ID = "255.255.255.255.";
    cout << ID << endl;
    
    if (correct(ID)) cout << "Правильный ввод.";
    else cout << "Неправильный ввод." << endl;
    
    system("pause");
    return 0;
}
 
bool correct(string id)
{
    
    if (id.size() < 8 || id.size() > 16 || id.empty() || *(id.end() -1) != '.') return false;
    
    int n = 0;
    
    do
    {
        stringstream s;
        int number;
        int j = 0;
        
        while (j < id.size() && id[j] != '.' )
        {
            if(!isdigit(id[j])) return false; 
            j++;
        }
        
        if (j == 0 || j > 3) return false;
        j++;
        
        s << id;
        s >> number;
        
        if (number > 255 || number < 0) return false;
        
        id.erase(id.begin(), id.begin() + j);
        
        n++;
    
    } while (!id.empty());
    
    if (n == 4) return true;
    return false;
}


Добавлено через 21 минуту
Цитата Сообщение от alexey31415 Посмотреть сообщение
correct на данный момент
Ваш код работает или попрежнему?

Добавлено через 12 минут
NewWords
Только метод класса. Самого класса я не вижу, поэтому мне это не проверить. Но, если надумаете мою реализацию correct() включать, то, в 13 строке:
C++
1
string id_of_word;
, в 38 :
C++
1
if(correct(id_of_word))
и про #include <string> не забудьте. И зачем вы используете char[]? Есть же класс string. Автоматическое управление памятью и пр.. Всё-таки С++.
Пробелы до первой цифры? "___255.255.255.255." Если считать такой ввод правильным, то, в начале функци correct(), нужно поместить конструкцию:
C++
1
2
while (*(id.begin()) == ' ')
     id.erase(id.begin());
, которая, перед анализом строки, уберёт из неё пробелы до первой цифры.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru