Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2014, 18:00   #1
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию Проверка на ввод данных. С.

Всем привет. Вот в универе начали учить Сшку.
Нам в каждой проге нужно делать проверку на ввод даных.
Никак не могу найти по этому инфы. Нашёл такой код:
Код:
if (scanf("%f",&v)!=1)
{
printf("Oshibka vvoda");
getch();
return 0;
}

при вводе переменной v, отличной от типа float, будет выдавать ошибку
Оно пашет, а вот в цикл закинуть не могу (что бы юзер вводил переменную, пока не введёт её правильно), зацикливается и все.
Вот:
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
{
	int v;
	while  (!(scanf("%d",&v)!=0))
	{
		scanf("%d",v);
		printf("Ne tot tip, pazan.");
	}
	printf ("vce tip, pazan.\n");
	getch();
	return 0;
}
И еще, как сделать проверку диапазона для числовых переменных и для буквенных на количество букв.
Спасибо.
guroDragon вне форума Ответить с цитированием
Старый 16.03.2014, 18:41   #2
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

ммм ща сделает, здесь цикл ду вайл нуже)

Последний раз редактировалось dykee; 16.03.2014 в 18:45.
dykee вне форума Ответить с цитированием
Старый 16.03.2014, 18:44   #3
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
{
	int v;
	do 
	{
		(scanf("%d",&v)!=0);
		
		
	}while(printf("Ne tot tip, pazan.\n"));
	printf ("vce tip, pazan.\n");
	getch();
	return 0;
}
Все работает)
dykee вне форума Ответить с цитированием
Старый 16.03.2014, 18:48   #4
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от dykee Посмотреть сообщение
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
{
	int v;
	do 
	{
		(scanf("%d",&v)!=0);
		
		
	}while(printf("Ne tot tip, pazan.\n"));
	printf ("vce tip, pazan.\n");
	getch();
	return 0;
}
Все работает)
Спасибо большое
А что на счёт переполнение?
Если у меня переменная int, я ввёл значение 3 ляма, оно ведь не выдаст ошибку, а выведет не понятное значение.
guroDragon вне форума Ответить с цитированием
Старый 16.03.2014, 18:53   #5
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от dykee Посмотреть сообщение
Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main ()
{
	int v;
	do 
	{
		(scanf("%d",&v)!=0);
		
		
	}while(printf("Ne tot tip, pazan.\n"));
	printf ("vce tip, pazan.\n");
	getch();
	return 0;
}
Все работает)
У меня не пашет :D
А вы правильно задали в while случай для повторения?
guroDragon вне форума Ответить с цитированием
Старый 16.03.2014, 18:54   #6
dykee
Пользователь
 
Регистрация: 09.10.2013
Сообщений: 78
По умолчанию

Цитата:
Сообщение от guroDragon Посмотреть сообщение
Спасибо большое
А что на счёт переполнение?
Если у меня переменная int, я ввёл значение 3 ляма, оно ведь не выдаст ошибку, а выведет не понятное значение.
Не много не пойму, что тебе надо, у тебя цикл для не нулевых элементов, то есть отдельных от нуля, дай конкретное задание)
dykee вне форума Ответить с цитированием
Старый 16.03.2014, 19:19   #7
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от dykee Посмотреть сообщение
Не много не пойму, что тебе надо, у тебя цикл для не нулевых элементов, то есть отдельных от нуля, дай конкретное задание)
1) У меня не пашет то, что вы мне написали)
Я про цикл. Мне нужно, что бы если я ввёл вместо цифры слово или букву, мне предложило ввести ещё раз.
Все равно зацикливается и все, не дает возможность ввести ещё раз переменную.
2) Как проверять введённую переменную не на тип, а на переполнение.
Спасибо.

Последний раз редактировалось guroDragon; 16.03.2014 в 19:21. Причина: Ввёл не то, что надо zzz...
guroDragon вне форума Ответить с цитированием
Старый 16.03.2014, 19:23   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int main ()
{
	int v,c;
	for(c=scanf("%d",&v);c!=1;c=scanf("%d",&v);)
	{
		printf("Ne tot tip, pazan.");
	}
	printf ("vce tip, pazan.\n");
	getch();
	return 0;
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2014, 19:47   #9
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
int main ()
{
	int v,c;
	for(c=scanf("%d",&v);c!=1;c=scanf("%d",&v);)
	{
		printf("Ne tot tip, pazan.");
	}
	printf ("vce tip, pazan.\n");
	getch();
	return 0;
}
Так это ясно. Мне в цикл закинуть надо.
С циклом у меня проблемы.
guroDragon вне форума Ответить с цитированием
Старый 16.03.2014, 19:54   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какие проблемы?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хеш-таблица и хеш-функция. Проверка на ввод существующих данных F1nt Общие вопросы C/C++ 0 24.01.2014 09:52
Проверка на ввод числа Snifer1994 Общие вопросы C/C++ 4 02.12.2012 18:09
Проверка на ввод цыфр nenf Общие вопросы C/C++ 2 15.09.2012 21:04
проверка на ввод Натаниэль Общие вопросы C/C++ 5 25.11.2011 10:34
проверка на неправильный ввод a.n.o.n.i.m Общие вопросы C/C++ 5 23.10.2011 09:57