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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
phoenix12297
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 12
#1

Защита от дурака. Разбор кода - C++

17.02.2013, 11:16. Просмотров 1149. Ответов 4
Метки нет (Все метки)

всем здравствуйте. Прошу помощи. такова ситуация, есть код защиты от ввода букв и отбрасывания пробелов, но не могу разобраться, он не мой.
помогите разобраться.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
float zashita()
{
 
    char si[1];
    char  s1[10]={""};
    int r2=0,r3=0;
    float kat1;
    A:
     r2=scanf_s(" %[^\n]", s1,10);    // неясно что тут. как работает сканф  %[^\n] - это вроде отбрасывание пробелов
     if (r2>=0)
    {
     r3=sscanf(s1,"%f%c",&kat1,si);    // и вот тут не ясно ничего.
     if(r3==0||r3>1)
     {
      printf("Недопустимы буквы.\n Попробуйте еще раз.\n\n\n");
      getch ();
      goto A;
     }
    }
     return kat1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2013, 11:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Защита от дурака. Разбор кода (C++):

Защита от дурака - C++
Вот только начал изучать С++ помогите составить защиту от дурака пожалуйста, вот код: #include <iostream> using namespace std; ...

Защита от дурака - C++
Вот кусок кода: do { cout << "Выберите вариант решения:" << endl; cout << " - первй вариант." << endl; cout << " -...

Защита от дурака - C++
Как в этот код добавить защиту от ввода символов? #include "stdafx.h" #include <iostream> #include <Windows.h> #include <cmath> ...

защита от дурака - C++
Знаю что таких тем уже было много, но в них я ничего полезного не нашел. Так вот задания: пользователь вводит элементы в массив, но нужно...

Защита от дурака - C++
нужна защита от дурака пытался реализовать с помощью 2 разных способов не вышло. #include <iostream> #include <string> #include...

Защита от дурака - C++
Помогите, пожалуйста. Программа должна печатать только цифры (а не буквы и прочие символы, знак минус может стоять в самом начале) и при...

4
go
Эксперт С++
3586 / 1366 / 129
Регистрация: 16.04.2009
Сообщений: 4,528
17.02.2013, 13:15 #2
Цитата Сообщение от phoenix12297 Посмотреть сообщение
sscanf(s1,"%f%c",&kat1,si); * *// и вот тут не ясно ничего.
Ну и что тут не ясно?
Цитата Сообщение от phoenix12297 Посмотреть сообщение
scanf_s(" %[^\n]", s1,10); * *// неясно что тут. как работает сканф *%[^\n] - это вроде отбрасывание пробелов
Сделана для этого, но работает не так http://www.cplusplus.com/reference/cstdio/scanf/ здесь почитайте


Да и Вы с разделом ошиблись все-таки.
0
phoenix12297
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 12
17.02.2013, 15:39  [ТС] #3
r2=scanf_s(" %[^\n]", s1,10); ну мне не ясно с какой целью приравнивается к г2. Я как бы понимаю что там логическая единица получается, но что она значит.

и тоже самое во втором. Еще не ясно что значит si вот тут -> "r3=sscanf(s1,"%f%c",&kat1,si);"
0
go
Эксперт С++
3586 / 1366 / 129
Регистрация: 16.04.2009
Сообщений: 4,528
17.02.2013, 17:49 #4
phoenix12297, scanf возвращает число успешных присваиваний. Вы читали, что я кидал по ссылке???
Цитата Сообщение от phoenix12297 Посмотреть сообщение
if(r3==0||r3>1)
Так не пишут
Цитата Сообщение от phoenix12297 Посмотреть сообщение
if (r2>=0)
Так тоже не пишут
0
phoenix12297
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 12
17.02.2013, 18:14  [ТС] #5
да, читали. но сложновато все написано, еще и не на родном языке. а как тогда пишут, если не так? на данном этапе мне нужно чтоб работало, а оно работает, и разобраться. вот со вторым и проблема.
Согласен, написано некрасиво, но работает в это лезть пока не хочу.

получается в г2 там всегда 1 т.к. что-то принимает сканф, а в г3 0 в том случае если запись в переменную прошла с ошибкой и дальше через иф идет сообщение об ошибке. так?

тогда остается вопрос что значит si вот тут -> "r3=sscanf(s1,"%f%c",&kat1,si);"
0
17.02.2013, 18:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2013, 18:14
Привет! Вот еще темы с ответами:

Защита от дурака - C++
Здравствуйте уважаемые форумчане! я к вам, и вот по какому делу) Вот есть у меня задача: Даны два целых числа А и В. Вывести в порядке...

защита от дурака как сделать? - C++
void DobvZapis() { int i; int j; char komanda; j = kol; do { system("cls"); cout << "Введите книгу" <<...

Защита от дурака (пустое значение в названии) - C++
Доброго вечера) Я пытаюсь сделать защиту от дурака, если конкретно - проверку при на ввод названия пустого значение, т.е. пробела или...

Защита от дурака. Ввод данных типа int с клавиатуры. - C++
Данные типа int вводятся с клавиатуры. нужно поставить защиту от дурака. Полазил на форуме нашёл программу: по аналогии пытался...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.