Форум программистов, компьютерный форум CyberForum.ru

Как проверить на ввод данных? - C++

Восстановить пароль Регистрация
 
Nabster
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 20
05.04.2011, 18:58     Как проверить на ввод данных? #1
То есть например: я ввожу число (1,2,3,4,5,6,7,8,9) то программа работает дальше,а если я ввожу букву (на англ языке) то программа просит чтоб мы ввели заново... вот как это сделать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.04.2011, 19:02     Как проверить на ввод данных? #2
Один из вариантов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <iomanip>
#include <limits>
 
int main(){
  for(;;){
    int t = 0;
    std::cin >> t;
    std::ios_base::io_state i = std::cin.rdstate();
    if(i & std::ios::failbit){
      std::cout<<"Only integer\n";
      std::cin.clear();
      std::cin.sync();
      continue;
    }
  }
  return 0;
}
Nabster
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 20
05.04.2011, 19:10  [ТС]     Как проверить на ввод данных? #3
эмм спс, но можно как нить по короче, ато у меня такую проверку надо устраивать раз так 9...
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.04.2011, 19:12     Как проверить на ввод данных? #4
Nabster, Пихаеш этот код в функцию и когда надо - вызываеш ее.
Nabster
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 20
05.04.2011, 19:12  [ТС]     Как проверить на ввод данных? #5
т.е можно как нить в новой переменной перечислить типа эта переменная может принимать от А до Z и от а до z. а потом просто проверить в if()
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.04.2011, 19:13     Как проверить на ввод данных? #6
Nabster, Вам нужно на Си ?
Nabster
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 20
05.04.2011, 19:16  [ТС]     Как проверить на ввод данных? #7
Цитата Сообщение от asics Посмотреть сообщение
Nabster, Пихаеш этот код в функцию и когда надо - вызываеш ее.
ну так то да

Добавлено через 2 минуты
Цитата Сообщение от asics Посмотреть сообщение
Nabster, Вам нужно на Си ?
желательно
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
05.04.2011, 19:18     Как проверить на ввод данных? #8
Цитата Сообщение от Nabster Посмотреть сообщение
желательно
Такую информацию надо постить в первом своем сообщение.Мой вариант на С++, так что - не пойдет.
Nabster
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 20
05.04.2011, 19:26  [ТС]     Как проверить на ввод данных? #9
Цитата Сообщение от asics Посмотреть сообщение
Такую информацию надо постить в первом своем сообщение.Мой вариант на С++, так что - не пойдет.
окей босс. буду знать

Добавлено через 8 минут
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
//добавление в базу
void abitur::add()
{
    
 struct abiturienti x;
 cout<<"Vvedite dannie novogo abiturienta: "<<endl;
 cout<<n+1<<".";
 
 cout<<"Familia: ";
 cin>>x.fam;
 cout<<"Adress: ";
 cin>>x.adres;
 cout<<"Ocenka po matematike: ";
 do{cin>>x.matan;while(x.matan<1){cout<<"Ocenka ne mojet bit` otricatel`noi ili ravnoi <0>! Vvedite zanovo!"<<endl;break;}}while(x.matan<1);
 cout<<"Ocenka po fizike: ";
 do{cin>>x.fizika;while(x.fizika<1){cout<<"Ocenka ne mojet bit` otricatel`noi ili ravnoi <0>! Vvedite zanovo!"<<endl;break;}}while(x.fizika<1);
 cout<<"Ocenka po russkomy: ";
 do{cin>>x.rus;while(x.rus<1){cout<<"Ocenka ne mojet bit` otricatel`noi ili ravnoi <0>! Vvedite zanovo!"<<endl;break;}}while(x.rus<1);
 cout<<"SRBALL= "<<double (x.matan+x.rus+x.fizika)/3<<endl<<"Izmenyaetcya sam!";
 x.srball=double (x.matan+x.rus+x.fizika)/3;
 cout<<endl;
 a[n]=x;
 n=n+1;
 cout<<"Zapisi dobavleni."<<endl;
 return;
 system("pause");
}
вот часть проги. здесь я добавляю в базу. когда я ввожу оценки по математике, русскому, физике я проверяю только на отрицательность и ноль. ну собственно как реализовать проверку на ввод символов?
asics
05.04.2011, 19:27
  #10

Не по теме:

Цитата Сообщение от Nabster Посмотреть сообщение
окей босс
Если это сарказм, то он здесь неуместен.

Nabster
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 20
05.04.2011, 19:29  [ТС]     Как проверить на ввод данных? #11
Цитата Сообщение от asics Посмотреть сообщение

Не по теме:


Если это сарказм, то он здесь неуместен.

Не по теме:

нет не сарказм....

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2011, 19:36     Как проверить на ввод данных?
Еще ссылки по теме:

C++ Как завершить ввод данных с клавиатуры
C++ Потоковый ввод и ввод данных. Работа с числами
C++ Как реализовать ввод данных в матрицу?

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
05.04.2011, 19:36     Как проверить на ввод данных? #12
особо не заморачиваясь
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int get_number(const char * prompt){
    int n;
    
    while ( printf("%s", prompt) && scanf("%d", &n) != 1 ){
        //fpurge(stdin); *NIX вариант
        fflush(stdin);
        printf("Wrong input!\n");
    }
    
    return n;
}
 
int main(void){
    int a, b;
    
    a = get_number("First number: ");
    b = get_number("Second number: ");
    printf("%d + %d = %d\n", a, b, a + b);
    
    return 0;
}
Yandex
Объявления
05.04.2011, 19:36     Как проверить на ввод данных?
Ответ Создать тему
Опции темы

Текущее время: 00:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru