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

Проверки данных на вводе и френд-функция - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выбор базы данных http://www.cyberforum.ru/cpp-beginners/thread952804.html
Какую выбрать базу данных(перспективную и развивающуюся), гугл советует MySQL или Oracle// если да то посоветуйте хорошую литературу для начинающих
C++ Массивы. Заменить все отрицательные элементы массива числом 0 Создайте массив А с помощью генератора случайных чисел с элементами от -20 до 10 и выведите его на экран. Замените все отрицательные элементы массива числом 0 http://www.cyberforum.ru/cpp-beginners/thread952785.html
C++ Найдите ошибку, пожалуйста
Задача: Дано ряд символов. Заменить в нем круглые скобки на квадратные. Строку считывает, выводит не заменив скобки.:wall: #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> int main() {
strcpy и VS2012 C++
// newintro.cpp // познакомимся с оператором new #include <iostream> #include <cstring> #include <string.h> using namespace std; int main() { char* str = "Дурная голова ногам покоя не дает.";
C++ Уважаемые программисты прокомментируйте программу пожалуйста http://www.cyberforum.ru/cpp-beginners/thread952770.html
#include <iostream> #include <ctime> using namespace std; class Budilnik { private: int hour, min, sec; public: void Set_time(int hour=0, int min=0, int sec=0);
C++ Шаблоны C++11 #include <iostream> template<typename T1, typename T2> auto func(T1 a, T2 b) -> decltype(a>b?b:a) { return a>b?b:a; } int main() { подробнее

Показать сообщение отдельно
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
14.09.2013, 19:43     Проверки данных на вводе и френд-функция
А какая там защита ( при вводе фамилии)?

Добавлено через 18 минут
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
#include <iostream>
#include <string>
#include <stdexcept>
#include <algorithm>
#include <functional>
#include <limits>
#include <clocale>
#include <cctype>
#include <Windows.h>
 
bool f(char ch)
{
    if (isalpha(unsigned char(ch))) return true;
    return false;
}
 
class Stud
{
public:
    std::string surname;
    std::size_t semester;
    std::size_t marks[4];
 
    static std::size_t const min_semester = 1;
    static std::size_t const max_semester = 20;
    static std::size_t const min_mark = 0;
    static std::size_t const max_mark = 10;
 
public:
    Stud()
        : surname("<-unknown->"), semester(min_semester)
    {
        std::fill_n(marks, 4, Stud::min_mark);
    }
 
    void get() const;
    Stud(const Stud &St);
    void exam ();
    ~Stud() {}
};
 
void Stud::exam()
{
    do
    {
        std::cout << "Фамилия студента ";
        std::cin >> surname;
        if ( std::find_if( surname.begin(), surname.end(), std::not1(std::ptr_fun(f)) ) != surname.end())
            std::cout << "Names can only contain letters" << std::endl;
        else break;
    
    } while (true);
 
    do {
        std::cout << "Семестр студента ";
        std::cin.clear();
        while (std::cin.get() != '\n');
    } while ( !(std::cin >> semester) || semester < Stud::min_semester || semester > Stud::max_semester );
 
    for (std::size_t i = 0; i < 4u; ++i) {
        do {
            std::cout << "Введите " << i + 1 << " оценку - ";
            std::cin.clear();
           while (std::cin.get() != '\n');
        } while ( !(std::cin >> marks[i]) || marks[i] < Stud::min_mark || marks[i] > Stud::max_mark );
    }
    std::cout << "=======ВВОД ЗАКОНЧЕН=======" << std::endl;
}
 
 
void Stud::get() const
{
    std::cout << "Фамилия - " << surname << " " << std::endl;
    std::cout << "Оценки:" << std::endl;
    for (int i = 0; i < 4; i++)
        std::cout << "Оценка " << i + 1 << " равна " << marks[i] << std::endl;
    std::cout << "Семестр " << semester << std::endl;
    std::cout << "=====ВЫВОД ЗАКОНЧЕН========" << std::endl;
}
 
Stud::Stud(const Stud &St)
    : surname(St.surname), semester(St.semester)
{
    std::copy(St.marks, St.marks + 4, marks);
}
 
int main() 
{
    std::setlocale(0, "");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    Stud FIRST_TRY;
    FIRST_TRY.exam();
    FIRST_TRY.get();
    std::cout << "=====КОПИЯ СТУДЕНТА========" << std::endl;
    Stud SECOND_TRY(FIRST_TRY);
    SECOND_TRY.get();
    Stud STUDENTS_ARRAY[2];
    STUDENTS_ARRAY[0] = FIRST_TRY;
    STUDENTS_ARRAY[1] = SECOND_TRY;
    std::cout << "=====МАССИВ СТУДЕНТОВ======" << std::endl;
    for (int i = 0; i < 2; i++)
        STUDENTS_ARRAY[i].get();
    
    std::system("pause");
    return 0;
}
 
Текущее время: 01:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru