Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: проблема с Scanf
Форум программистов > Системное программирование > C, С++ и С Builder > Общие вопросы по С и С++
Crocklam
do{
f=0;


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

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



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

И вообще если задаете вопрос : то по сути, и что нужно делать, дак и сообщение должно иметь НОРМАНЫЙ ВИД.
Crocklam
Ну в общем если функция Scanf не может прочитать Integer программа завершается автоматически. И вот вопрос. Можно ли сделать так чтоб она не завершалась?
misterio
Чесно говоря не знаю как сделать обработку исключительной ситуации. Но я бы покрутил с :

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


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

Или зависимыми функциями : isalnum(),isalpha().
Crocklam
Спасибо, попробую
garrymax
Уже писал такое в форуме http://forum.codeby.net/topic17556.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);
}
Crocklam
Отлично!!! Работает! Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2008 IPS, Inc.