• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

проблема с Scanf

  • Автор темы Crocklam
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

Crocklam

do{
f=0;


for(i=0; i<n; ++i)

f+=scanf("%i", &mas);



}
while(f!=n);
Надо ввести массив с клавы, если есть ошибка оно возвращается к do. Только в дальнейшем, при прохождении цикла больше scanf компилятор не видит и цикл зацикливается. Такое ощущение что строчка f+=scanf("%i", &mas); просто исчезла!!! Помогите плз.
 
M

misterio

я ничего не пойму, либо тут бред написан!(скорее всего)!

И вообще если задаете вопрос : то по сути, и что нужно делать, дак и сообщение должно иметь НОРМАНЫЙ ВИД.
 
C

Crocklam

Ну в общем если функция Scanf не может прочитать Integer программа завершается автоматически. И вот вопрос. Можно ли сделать так чтоб она не завершалась?
 
M

misterio

Чесно говоря не знаю как сделать обработку исключительной ситуации. Но я бы покрутил с :

Код:
#include <cctype>
int isdigit (int ch);

Если аргумент - цифра, то функиця возвращает ненулевое значение, в противном случае - 0.

Или зависимыми функциями : isalnum(),isalpha().
 
G

garrymax

Уже писал такое в форуме https://codeby.net/threads/17556.html.

Если правильно понял, то нужно что-то вроде этого:
Код:
#include <stdlib.h>
#include <stdio.h>
char ch[256];
int f=0;

//........... 

while(scanf( "%s", ch)){
if (atoi(ch) ==0) break;
f+= atoi(ch);
}
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!