Проблема с вводом из консоли

143
04 декабря 2019, 21:00

Только учусь с++. Написал простенькую программу, с циклом while. В начале вводится любое число. Если ввести более-менее маленькое всё работет, но когда я ввожу например 10000000000000000000, то программа не реагирует на нажатия в следуюшем вводе. Код:

#include "pch.h"
#include <iostream>
#include <cstdlib> // для system
#include <ctime>
#include <cmath>
using namespace std;

int main()
{
    setlocale(0, "");
    int money;
    int k2;
    cin >> money;
    cin >> k2;
    int start_time = clock();
    int money_now = 1;
    while (money_now * k2 <= money) {
        money_now++;
    }
    cout << money_now;
    int end_time = clock();
    int search_time = end_time - start_time;
    cout << "Программа работала: " << search_time;
    return 0;
}
Answer 1

Не хочу вас расстраивать, но 10000000000000000000 никак не поместится в int...

В результате - у вас ввод неверный (просто не выполненный), приводит к тому, что в money и k2 оказываются непрочитанными, там лежит что угодно... Ну, и соответственно, если, скажем, в k2оказывается отрицательное значение - такой цикл может работать ну очень долго :)

Проверьте - у вас уже после первого ввода cin.good() даст false - типа такого вставьте:

cin >> money;
cout << cin.good() << endl;
cin >> k2;
cout << cin.good() << endl;
Answer 2

Проблема была в том, что 10000000000000 слишком большое число для int. Нужно было либо сменить тип перемнной либо умеьшить воодимое число. Это было полезно

READ ALSO
C++ cin.clear(); cin.ignore возвращают 0

C++ cin.clear(); cin.ignore возвращают 0

Доброй ночиВопрос от новичка

158
Права администратора в Qt

Права администратора в Qt

Есть приложение на Qt, и обычно располагается в Program FilesВ некоторых случаях, когда запускается программа, она запрашивает/не запрашивает права...

138
Как добавить текст в TextView через Loader?

Как добавить текст в TextView через Loader?

Сейчас изучаю потоки в андроид, и мое задание - сделать счетчик, который добавляет числа от 0 до 9 в TextView через LoaderПонятно, что Loader нужен для...

233