проблема с Scanf

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

Crocklam

#1
do{
f=0;


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

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



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

misterio

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

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

Crocklam

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

misterio

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

Код:
#include <cctype>
int isdigit (int ch);
Если аргумент - цифра, то функиця возвращает ненулевое значение, в противном случае - 0.

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

garrymax

#6
Уже писал такое в форуме http://codeby.net/forum/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);
}
 
Статус
Закрыто для дальнейших ответов.