Показать сообщение отдельно
A_D
MONOGROME
Аватар для A_D
Сообщения: 11,004
Регистрация: 11.02.2009
Откуда: Бразилия
Старый пост, нажмите что бы добавить к себе блог 19 марта 2013, 16:22
  #2775 (ПС)
-Цитата от Dagot7 Посмотреть сообщение
регулярку запили
/^[0-9]*$/ - защита от ввода букв
/^[0-9]{1}[.]{1}[0-9]{1,7}/ шаблон для чисел типа float
и так далее, почитай про регулярные выражения, я сам их хреново знаю, но весч хорошая
куда вставлять этот код в условие ?
вот сама программа пидерская правда ну пох..
Показать скрытый текст
#include <iostream>
#include <math.h>
#include <stdlib.h>

using namespace std;
int main()
{
setlocale(0, "");
float a,b,x;
printf("Введите x:");
scanf("%f",&x);
if (x==0||x<=-9999999||x>=9999999) cout<<"значение X введенно не верно"<<endl;
else
{printf("введите а:");
scanf("%f",&a);
if (a<=-9999999||a>=9999999) cout<<"размер введенного числа не должен привышать 7 символов"<<endl;
else
{printf("введите b:");
scanf("%f",&b);
if (b<=-9999999||b>=9999999) cout<<"размер введенного числа не должен привышать 7 символов"<<endl;
{ float y = 1 / x - a * pow(x,2) + abs( b * x);
cout<< "данное уравнение равно" << y << endl;
}}}}

вот тип скинул защиту какую то..не понимаю как ее вставить..циклов дохуя чето
Показать скрытый текст
std::string correct_input(std::string str,char type)
{
using namespace std;
int point,i,range,max_point,m_lenght,empty_numbers;
char s;
bool start_m;
string str_temp;
switch (type)
{
default:
case 'i':max_point=0;range=11;break;
case 'f':max_point=1;range=8;break;
case 'd':max_point=1;range=15;break;
}
point=0;
start_m=false;
m_lenght=0;
empty_numbers=0;
if (str[0]=='-' || str[0]=='+')
{
i=1;
str_temp+=str[0];
++empty_numbers;
} else {i=0;}
if (str[i]==',')
{
str_temp+="0,";
++i;
++point;
empty_numbers+=2;
}
while (str[i]=='0')
{
if (point!=0 || str[i+1]==',') break;
++i;
}
while (true)
{
s=str[i];
if (s=='\0') break;
if (s==',') ++point;
if (!((isdigit(s)) || (s=='\0') || (s==',')) || point>max_point)
{
cin.clear();
cin.sync();
str_temp="ERROR";
return str_temp;
}
str_temp+=s;
if (s!='0' && s!=',') start_m=true;
if (start_m) ++m_lenght; else ++empty_numbers;
++i;
}
if (m_lenght>=range) str_temp[range+empty_numbers]='\0';

return str_temp;
}

ну как то так
-Цитата от Yafik Посмотреть сообщение
Исключения юзаешь?
наврено

offline
Ответить с цитированием