Программа завершается, если вводится что-либо, кроме номера - PullRequest
0 голосов
/ 11 июля 2019

Я работаю, хотя Программирование: принципы и практика с использованием C ++.И я не могу заставить свою программу принимать двойные строки.Он заканчивается, как только я ввожу строку.

Если я ввожу любое число, например 100, оно будет работать, как и ожидалось, и выдает самое маленькое и самое большое.

Если я введу 100 м, 100m, 100, m программа выводит наименьшее на данный момент и самое большое, но я не могу заставить его вывести строковую единицу «m».

Я учу себя такому вводу вообще, даже если онне имеет отношения к этому вопросу, будет принята с благодарностью.

Спасибо

Я попытался ввести val1, затем введите строку.Я попытался https://github.com/bewuethr/stroustrup-ppp/blob/master/chapter04/chapter04_drill.cpp, и я даже не могу заставить эту программу работать на NetBeans. Я добавил общую строку "unit"

#include "std_lib_facilities.h"

int main ()
{

    double val1 = 0; // initialized
    double val1_conv = 0; //intialized
    double smaller = INFINITY; // initialized
    double larger = -INFINITY; // initialized

    vector<double> compare; // empty vector of doubles


    string unit = "";  // Added this to see if it would allow a string, I've also tried removing the = "" 
    string meter = "m";
    string centi = "cm";
    string foot = "ft";
    string inch = "in";

    cout << "Please input a value follow by unit (ie cm,m, in,ft), us | to stop" << endl; // put into

    while (cin >> val1 >> unit)   // cin "get from"
    {
        compare.push_back(val1);

        if (unit == "m") // Just trying to get the program to accept a string after an double
        {
            cout << val1 << unit;
        }

        if (val1 < smaller)
        {
            smaller = val1; // assignment giving a variable a new value
            cout << val1 << " is the smallest so far \n";
            compare.push_back(smaller);
        }

        if (val1 > larger)
        {
            larger = val1;   // assignment giving a variable a new value
            cout << val1 << " is the largest so far \n";
            compare.push_back(larger);
        }

    }
    return 0; // The book doesn't have us adding this line to everything but I tried it.
}

Она действует так, как будто я неt добавить любую строку или единицу к значению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...