1

Тема: Створення коду, для зчитування тільки цифр.

У мене є завдання, зчитувати тільки числа, а якщо введено:"13!; 3   4; 13b", в таких випадках програма повинна restart.
Я думав що можна так : if( cin != number) restart;
                                        else
                                           cin={змінна}
Було б чудово написади код, або кинути джерело, звідки можна дізнатись про такі випадки.

2

Re: Створення коду, для зчитування тільки цифр.

Берете стрічку, туди кладете те, що ввів користувач, потім в циклі перебираємо кожен символ у стрічці і якщо він !цифра робимо restart.

Подякували: Bogdan_INT1

3

Re: Створення коду, для зчитування тільки цифр.

Завдання нечітке. Яким чином у тому, що введено, можуть бути "тільки числа"? Числа, як відомо, записуються цифрами. Послідовність цифр - це одне число. Якщо введене щось, де є більше одного числа (а "числа" у вас у множині), то там мають бути якісь роздільники - наприклад, пробіли чи знаки пунктуації тощо. Які саме роздільники приймаються, а які - ні?
Найпростіше - запхати це все в цикл і після спроби прочитати чергове число з потоку (наприклад, cin) перевіряти, чи вийшло, і якщо ні - не виконувати подальші дії.

while(true){
  int x;
  cin>>x;
  if(cin) { //перевіряємо стан помилки
    //що там робити з x
  } else {
    std::cin.ignore(INT_MAX); //викидаємо з cin те, що було введено
    cin.clear(); //скидаємо стан помилки
  }
}
Подякували: Bogdan_INT, leofun012