Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
-1 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 48

Преобразовать последовательность символов в число

07.12.2014, 14:48. Показов 4528. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    setlocale(0, "");
    unsigned int a, s, d, f, g, h, ch;
    cout << "Ââåäèòå ïîñëåäîâàòåëüíî 6 öèôð: ";
    a=getche();
    s=getche();
    d=getche();
    f=getche();
    g=getche();
    h=getche();
    cout<<endl;
    ch=a*100000+s*10000+d*1000+f*100+g*10+h;
    cout << "Âû ââåëè: " << ch;
    }
Помогите, пожалуйста, никак не могу разобраться.
Нужно чтобы эта программа преобразовывала введенные цифры одним числом, почему она некорректно работает, и выводит другие числа?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2014, 14:48
Ответы с готовыми решениями:

Преобразовать последовательность, добавив к ней наименьшее число символов
Помогите, пожалуйста, с задачей. Уже второй день мучаюсь, ничего в голову не лезет. Условие: Даны натуральное число n, символы S1,...

Преобразовать строку, содержащую произвольную последовательность нулей и единиц (двоичное число), в целое число
Помогите пожалуйста с заданием Написать функцию, которая преобразует строку, содержащую произвольную последовательность нулей и единиц...

Преобразовать последовательность символов заменив в ней каждую из групп стоящих рядом точек одной точкой
Дано натуральное число n, символы s1,...,sn переобразовать последовательность s1,...,sn заменив в ней: в) каждую из групп стоящих...

8
37 / 37 / 18
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
07.12.2014, 14:57
Через cin>> вводи
0
-1 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 48
07.12.2014, 15:25  [ТС]
там в задании через getche() сказано
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
07.12.2014, 15:37
Лучший ответ Сообщение было отмечено Hatsuko как решение

Решение

Потому что getche возвращает КОД символа.

Добавлено через 2 минуты
Можете просто вычесть код цифры '0', но это хреновое решение. Вдруг не цифру ввели?
C++
1
2
3
4
5
6
    a=getche()-'0';
    s=getche()-'0';
    d=getche()-'0';
    f=getche()-'0';
    g=getche()-'0';
    h=getche()-'0';
1
-1 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 48
07.12.2014, 15:46  [ТС]
Заработала, а почему вообще так выходит, что не то выводится, в чем ошибка у меня?
0
37 / 37 / 18
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
07.12.2014, 16:56
Цитата Сообщение от Hatsuko Посмотреть сообщение
Заработала, а почему вообще так выходит, что не то выводится, в чем ошибка у меня?
ты вводиш код символа, а не самое значения числа
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,035
Записей в блоге: 1
07.12.2014, 17:03
Цитата Сообщение от Hatsuko Посмотреть сообщение
в чем ошибка у меня?
в том, что код символа '6' не равен числу 6.
0
-1 / 0 / 0
Регистрация: 04.12.2014
Сообщений: 48
11.12.2014, 14:44  [ТС]
да-да-да, я уже поняла, но все равно спасибо ^^
0
0 / 0 / 0
Регистрация: 13.11.2016
Сообщений: 7
13.02.2017, 08:19
Вопрос, конечно, трёхлетней давности, но отвечу, может кому пригодится.
Функция getche() передаёт введённый символ, а точнее - его номер из таблицы ASCII. То есть типом переменных a, b и прочих следует указать char. А так как в таблице ASCII цифра 0 имеет порядковый номер 48 (нумерация символов начинается от 0 до 255). Когда при выполнении операции a = getche() мы вводим цифру 0, переменной a присваивается значение 48, если вводим 1, то значение 49 и так далее до 9 (значение 57).
В языке C++ тип char является целочисленным, по этому переменные данного типа без труда могут использоваться в арифметических операциях.
И так, введённые цифры имеют в переменной char значение выше требуемого на 48, по этому отнимем от них 48.
Программа будет выглядеть как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
    setlocale(0, "");
    unsigned int ch;
    char a, s, d, f, g, h;
    cout << "Ââåäèòå ïîñëåäîâГ*òåëüГ*Г® 6 Г¶ГЁГґГ°: ";
    a=getche();
    s=getche();
    d=getche();
    f=getche();
    g=getche();
    h=getche();
    cout<<endl;
    ch=(a - 48)*100000+(s - 48)*10000+(d - 48)*1000+(f - 48)*100+(g -48)*10+h;
    cout << "Âû ââåëè: " << ch;
    }
Но я лучше сделал бы так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    long result = 0;     //Переменная, хранящая результат
    char num = 0;        //Переменная принимающая вводимый символ
    cout << "Введите число: ";
    while (num != '\r')  //Пока не нажата клавиша Enter (бозначается символом \r), ввод продолжается
    {
        num = _getche();  //Принимает введённый символ (цифру)
        if (num != '\r')
            result = result * 10 + (num - 48); //Благодаря умножению на 10, символ, введённый ранее сдвигается влево
    }
    cout << endl << "Вы ввели: " << result << endl;
    system("pause");
    return 0;
}
Проверки на ввод символов отличных от цифр нет, но зато длина числа не ограничена.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2017, 08:19
Помогаю со студенческими работами здесь

Преобразовать число так, чтобы его цифры представляли собой неубывающую последовательность
Несколько натуральных чисел вводят с клавиатуры.По мере ввода преобразовать каждое число так, чтобы его цифры представляли собой...

Дано последовательность символов S. последовательность символов, которая делается перестановкой местам двох частей S
Дано последовательность символов S. Сделать последовательность символов, которая делается с помощью перестановки местами двох частей...

Считать несколько символов (цифр) из файла и преобразовать их в число
Предположим у меня есть массив, в котором у первого элемента значение 1, у второго значение 2, у третьего значение 3.Так вот как сделать...

Даны натуральное число n, символы s1,.,sn. Получить последовательность символов, содержащую только последние вхождения каждого символа
Даны натуральное число n, символы s1,...,sn. Получить последовательность символов, содержащую только последние вхождения каждого символа. ...

Преобразовать литерную последовательность в другую литерную последовательность всеми описанными ниже способами
Здравствуйте, уже несколько дней мучаюсь над такой задачей : &quot;Имеется литерная последовательность, состоящая из не более чем 30 ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru