<commit_before>#include "getvalue.h"

#include <iostream>
#include <string>
#include <cstdlib>
#include <conio.h>

using std::cout;    // считается, что поток вывода это обычный cout
using std::string;

//template <typename T>
long double getDoubleVal() {
    string strRes;          // Храниться введенное пользователем значение
    char input = ' ';       // В этой переменной хранится символ, который вводится на каждой итерации цикла
    int lastElementIndex = 0;   // используется при удалении символа
    bool isDecimalSeparatorInputted = false;
    bool isValidInput = false;
    bool endInput = false;


    while(!endInput) {
        input = getch();       // getch записывает введенный символ в переменную не дожидаясь нажатия ентера

        switch(input) {
        case '-':
            if(strRes == "") {
                strRes += '-';
                isValidInput = true;    // Для вывода введенного символа, может лучше использовать continue?
            }
            break;
        case 13:                // Числа вводятся пока не будет нажат ентер(символ 13)
            endInput = true;
            break;
        case '.':
        case ',':
            if(isDecimalSeparatorInputted == false) {
                isDecimalSeparatorInputted = true;
                strRes += '.';
                isValidInput = true;
            }
            break;
        case '\b':  // удаление символов
            lastElementIndex = strRes.length() - 1;
            if(lastElementIndex >= 0) {
                char lastElem = strRes.at(lastElementIndex);
                if(lastElem == '.' || lastElem == ',') {
                    isDecimalSeparatorInputted = false;
                }
                strRes.erase(lastElementIndex, 1);
                cout << "\b \b";
                continue;
            }
            break;
        default:
            if((input >= 48 && input < 58)) {   // 47 < ch < 58 // Если введенный символ это цифра то...
                // числа от 47 до 58 в кодовой таблице это цифры
                strRes += input;           // Добавление введенных символов к строке для последующего распознавания
                isValidInput = true;
            }
            break;
        }

        if(isValidInput == true) {
            cout << input;
            isValidInput = false;
        }
    }

#ifdef _MSC_VER
    return _Stold(strRes.c_str(), NULL, 0);
#else
    return strtold(strRes.c_str(), NULL); // stold() ?
#endif
}
<commit_msg>Small code fix<commit_after>#include "getvalue.h"

#include <iostream>
#include <string>
#include <cstdlib>
#include <conio.h>

using std::cout;    // считается, что поток вывода это обычный cout
using std::string;

//template <typename T>
long double getDoubleVal() {
    string strRes;          // Храниться введенное пользователем значение
    char input = ' ';       // В этой переменной хранится символ, который вводится на каждой итерации цикла
    int lastElementIndex = 0;   // используется при удалении символа
    bool isDecimalSeparatorInputted = false;
    bool isValidInput = false;


    do {
        input = getch();       // getch записывает введенный символ в переменную не дожидаясь нажатия ентера

        switch(input) {
        case '-':
            if(strRes == "") {
                strRes += '-';
                isValidInput = true;    // Для вывода введенного символа, может лучше использовать continue?
            }
            break;
        case 13:                // Числа вводятся пока не будет нажат ентер(символ 13)
            isValidInput = false;
            break;
        case '.':
        case ',':
            if(isDecimalSeparatorInputted == false) {
                isDecimalSeparatorInputted = true;
                strRes += '.';
                isValidInput = true;
            }
            break;
        case '\b':  // удаление символов
            if(!strRes.empty()) {
                lastElementIndex = strRes.length() - 1;
                char lastElem = strRes.at(lastElementIndex);
                if(lastElem == '.' || lastElem == ',') {
                    isDecimalSeparatorInputted = false;
                }
                strRes.erase(lastElementIndex, 1);
                cout << "\b \b";
            }
            break;
        default:
            if((input >= 48 && input < 58)) {   // 47 < ch < 58 // Если введенный символ это цифра то...
                // числа от 47 до 58 в кодовой таблице это цифры
                strRes += input;           // Добавление введенных символов к строке для последующего распознавания
                isValidInput = true;
            }
            break;
        }

        if(isValidInput == true) {
            cout << input;
            isValidInput = false;
        }
    } while(input != '\r');

#ifdef _MSC_VER
    return _Stold(strRes.c_str(), NULL, 0);
#else
    return strtold(strRes.c_str(), NULL); // stold() ?
#endif
}

{'fraction_non_alphanumeric': 0.09970326409495549, 'fraction_numerical': 0.00811078140454995, 'mean_word_length': 1.4796468857282983, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 16, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1761923', 'n_tokens_mistral': 1595, 'n_tokens_neox': 1590, 'n_words': 381}