Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/16: Рейтинг темы: голосов - 16, средняя оценка - 4.94
11 / 6 / 0
Регистрация: 19.02.2010
Сообщений: 77

C++ проверка ввода

25.03.2010, 13:37. Показов 3341. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят помогить пожалуста разобраться не работает чертова проверка ввода я в коментарии вынес текст ошибки гляньте ...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// laba1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include "stdlib.h"
#include "math.h"
using namespace std;
 
double prov()
{
    double b1;
    char a1,*ost;
    do{
    cout<<"vvedite 4islo \n";
     cin>>a1;
     b1=strtod(a1,&ost); 
//Ошибка  1   error C2664: strtod: невозможно преобразовать параметр 1 из 'char' в 'const char *'   c:\users\kir_\documents\visual studio 2008\projects\laba1\laba1.cpp 18
//если b1=strtod(&a1,&ost); то строка ниже не работает, судя по всему? преобразование не работает...
         if (*ost!=NULL){cout<<"ne vernbIi vvod \n";};
     }
    while(*ost=NULL);
    return b1;
}
void main()
{ int i=0, c=0;
    long n=0;
char *end,n1;
double  a,b,x=0,y,s;
  a=prov();
  b=prov();
 
do{
    cout<<"n=";
     cin>>n1;
     n=strtoul(&n1,&end,c);
   }
while(*end!=NULL);
  { if((n>0)&(n<=1000)& !(x*x>1)) 
   s=(b-a)/n; x=a;
cout<<"s="<<s<<"\n";
      while (x<b+s)
      {if (x*x>1) cout << "x>0 функция не существует";
        else 
        y=sin(3*(asin(x)));
      cout <<"x="<<x<<"\t"; cout <<"y="<<y<<"\n";
      x=x+s;
     };
  };
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2010, 13:37
Ответы с готовыми решениями:

Visual C++ проверка ввода на число, проверка на кирилицу
Суть ввести с клавиатуры нечто, и повторять ввод до тех пор пока введенное число не будет числом. Этот код проверяет на буквы и знаки,...

gets() проверка ввода
возникло слабое звено в программке ... max_length = 100; line = new char; ... gets(line); ... вопрос такой: как...

Проверка ввода
Доброго вам времени суток. Бывалые, подскажите неопытному, как лучше писать? И если несложно, то скажите почему. for(;;) { ...

4
21 / 17 / 0
Регистрация: 05.03.2010
Сообщений: 59
25.03.2010, 21:02
C++
1
double strtod ( const char * str, char ** endptr );
Ты передаешь в функцию char (char a1) а нужно const char* (const char* a1) вот оно тебе и пишет strtod: невозможно преобразовать параметр 1 из 'char' в 'const char *'
0
11 / 6 / 0
Регистрация: 19.02.2010
Сообщений: 77
26.03.2010, 00:24  [ТС]
вот тут компилятор ошибки не выдает но проверка не работает я влипил вывод данных

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
double prov()
{
    double b1;
    char a1,*ost;
    do{
    cout<<"vvedite 4islo \n";
     cin>>&a1;
     cout <<"vvedeno  " <<a1<<'\n';
     b1=strtod(&a1,&ost);
     cout<<"a1  "<<a1<<"\n"<<"&"<<"ost  "<<ost<<"\n"<<"b1  "<<b1<<"\n";
     if (b1!=a1){cout<<"ne vernbIi vvod \n";};
     }
    while(b1=a1);
    return b1;
}
и получил, что а1 присавевается только 1 символ из потока ... поэтому нифига не работает strtod но акимто волшебным боком b1 становится равен тому что я ввел ... и проверить это все невозможно ибо если вводится 0 то всякая х**ня получится =((
там во вложении скрин....
Изображения
 
0
21 / 17 / 0
Регистрация: 05.03.2010
Сообщений: 59
26.03.2010, 20:53
Внимательно прочитай про функцию...что она принимает и что ты передаешь. У тебя получается один символ потому что ты передаешь ей один символ типа char, а ты передай ей указатель на константную строку. ( http://www.cplusplus.com/refer... ib/strtod/ )
C++
1
2
3
4
5
6
        char *a1,*ost;
        do{
    cout<<"vvedite 4islo \n";
     cin>>a1;
         cout <<"vvedeno  " <<a1<<'\n';
     b1=strtod(a1,&ost);
0
11 / 6 / 0
Регистрация: 19.02.2010
Сообщений: 77
13.04.2010, 20:51  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
// laba1.cpp: îïðåäåëÿåò òî÷êó âõîäà äëÿ êîíñîëüíîãî ïðèëîæåíèÿ.
//
#include "iostream"
#include "cstdlib"
#include "math.h"
//#include "sstream"
#include "stdio.h"
using namespace std;
 
double prov(){
        double n;
        char str[255],str2[255];
        do{
                cin>>str;
                n = atof(str);
                sprintf(str2,"%g",n);
                if (strcmp(str, str2)!=0)
                        cout<<"Neverniy vvod, povtorite snova\n";
        }
        while(strcmp(str, str2)!=0);
        return n;
}
int prov_int(){
        int n;
        char str[255],str2[255];
        do{
                cout<<"VVedite chislo promegutkov=> ";
                cin>>str;
                n = atoi(str);
                itoa(n,str2,10);
                if (strcmp(str, str2)!=0)
                        cout<<"Neverniy vvod, povtorite snova\n";
        }
        while(strcmp(str, str2)!=0);
        return n;
}
int main()
    {   
         char i;
    int n=0;
double  a,b,x,y,s;
do
{
do
{
        cout<<"VVedite a=> ";
  a=prov();
  if(a*a>1)cout<<"'a' za predelami O.o \n";
} while (a*a>1);
 
    do
    {
            cout<<"VVedite b=> ";
      b=prov();
       if(b*b>1)cout<<"'b' za predelami O.o \n";
    } while (b*b>1);
}
    while (b<=a);
do{
  n=prov_int();
  }
while(n<=0);
  { if (n!=0) {
  x=a;
  { if((n>0)&(n<=1000)& !(x*x>1)) 
   s=(b-a)/n;
  cout<<"s="<<s<<"\n";
      while (x<=b)
      { y=sin(3*(asin(x)));
        {if ((x<0.0000001)&(x>-0.0000001)) x=0;}
        {if ((y<0.0000001)&(y>-0.0000001)) y=0;}
      cout <<"x="<<x<<"\t"; cout <<"y="<<y<<"\n";
      x=x+s;
     };
  };
 };
};
system("pause");
}
В конце концов вот что у меня получилосььь
писалось в Dev++ точнее заработало в дев ++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.04.2010, 20:51
Помогаю со студенческими работами здесь

Проверка ввода
Всем привет. Прошу обясните мне как зделать проверку вводимых даных. Мне нужно к примеру задать числовой масив типа (int). Как зделать так...

Проверка ввода
Как ограничить ввод символов в программе!!!! На каждый символ, который был введен выдавать сообщение о неправильном вводе????? Надо чтоб...

Проверка ввода
Всем добрый день! В данный момент пишу фрагмент кода , вот в чем его суть : пользователь может вводить только буквы английкого...

Проверка ввода
Здравствуйте! Не нашёл тему, где могут задавать простые вопросы начинающие(если есть такая, подскажите куда писать в следующий раз) ,...

Проверка ввода
Здравствуйте, помогите, пожалуйста, написать функцию для обработки неправильного ввода символов. Программа для высчитывания логических...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru