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

Gets не коректно работает - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция, которая вставляет перед каждым отрицательным элементом элемент с нулевым значением http://www.cyberforum.ru/cpp-beginners/thread1163218.html
Есть двумерный динамический массив (матрица). Нужно написать функцию, которая вставляет перед каждым отрицательным элементом элемент с нулевым значением.
C++ Проверить, лежат ли данные точки на одной окружности Задан размер массива действительных чисел и значения его элементов. Считая, что пары элементов представляют собой координаты точек на плоскости, проверить, могут ли все данные точки лежать на одной окружности и, если да, найти ее радиус. http://www.cyberforum.ru/cpp-beginners/thread1163206.html
Объясните синтаксис записи и чтения объектов из файлов C++
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib> using namespace std; struct champ {
C++ Класс PriceList. Разработать программу формирования и распечатки прайс-листов
Разработать программу формирования и распечатки прайс-листов. Прайс-лист компьютерной фирмы представляет собой список моделей продаваемых компьютеров. Один элемент списка (Model) содержит информацию о марке компьютера, типе процессора, частоте работы процессора, объеме памяти, объеме жесткого диска, объеме памяти видеокарты, цене компьютера в условных единицах и количестве экземпляров,...
C++ Проверка на зеркальное отражение строки http://www.cyberforum.ru/cpp-beginners/thread1163191.html
Для общения в полевых условиях используется система обмена сообщениями WhoDown. Так как вся связь в поле идет через радиоканал, а магнитная обстановка на поле нестабильна, то приходится передавать сообщение так, чтобы при некоторых потерях информацию можно было восстановить. Для того, чтобы привести сообщение в восстанавливаемый вид, его разворачивают и приписывают к самому себе в конце,...
C++ Программа для моделирования Ж\Д составов cut Правила Форума: 5.18 Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.Перепечатывайте задание на форум подробнее

Показать сообщение отдельно
Dmitrii-86
0 / 0 / 0
Регистрация: 30.04.2014
Сообщений: 5
01.05.2014, 15:01  [ТС]     Gets не коректно работает
Вот что в конце концов получилось:
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
#include<iostream>
#include<cstdio>
#include "string.h"
using namespace std;
 
int bik(char in[32], char etalon[32]);
int kor(char in[32], char etalon[32]);
 
int main(void)
{
    char in[32], etalon[32];
    int b,k;
 
    //передает строку из консоли в переменную etalon
    for (;;)
    {
        cout << "Введите 4 значное число: ";
        fgets (etalon, 32, stdin);
        if (etalon[strlen(etalon)-1] == '\n') //убираем '\n'
            etalon[strlen(etalon)-1] = '\0';
        if (strlen(etalon)==4) break;
            else cout << "Вы ввели не коректное число!!!" <<endl;
    }
    
        
        
            b=0; k=0;
            for (;;)
            {
                cout << "Введите число для сравнения:";
                fgets (in, 32, stdin);      
                if (in[strlen(in)-1] == '\n') //убираем '\n'
                    in[strlen(in)-1] = '\0';
                if (strlen(in)==4) break;
                    else cout << "Вы ввели не коректное число!!!" <<endl;   
            }
            b = bik (in, etalon);
            k = kor (in, etalon);
            cout << "Результат >> " << b << " и " << k << " \n";
        
        
}
 
int bik (char in[32], char etalon[32])
{
    int b=0;
    for (int i=0; i<=3; i++)
                {
                    if (in[i] == etalon[i]) b++;
                }
    return(b);
}
 
int kor (char in[32], char etalon[32])
{
    int k=0;
    for (int i=0; i<=3; i++)
    {
        for (int j=0; j<=3; j++)
        {
            if (in[i] == etalon[j] && i!=j)
                {
                    k++;
                    break;
                }
        }
    }
    return(k);
}
Только теперь возник следующий вопрос: как ограничить ввод таким образом, чтобы вводились только цифры и они в строке не повторялись? Важнее первый вопрос.

Добавлено через 29 минут
Как-то можно сделать, чтобы символ сравнивался с последовательностью символов. Что-то вроди
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int corect(char in_str[32])
{
    char etalon_str [9];
    etalon_str='1','2','3','4','5','6','7','8','9','0'; // на этой строке выдает ошибку
    for (int i=0; i<=3; i++)
    {
        for (int j=0; j<=9; j++)
        {
            if (in_str[i]!=etalon_str[j])
            {
                return(1);
            }
        }
    }
}
 
Текущее время: 18:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru