Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2015, 18:47   #1
Korlet
Пользователь
 
Регистрация: 02.09.2015
Сообщений: 18
Вопрос Программа перевода 16-чного числа в 10-чное (подправить)

Почему вылезает такая вот хрень перед ответом до слов "Её..."?
Как это убрать?


Код:
using namespace std;
#include <iostream>
#include <cmath>
#include <string>
 
int main()
{
    int i,j,k;
    setlocale(0,"");
    double num;
    string s;
    cout << "Введите шестнадцатеричное число:" ;
cin>>s;
char etal[] = "0123456789abcdef";
num = 0;
    for (i=s.length();i>0;i--) {
        j=0;
        while (putchar(s[i-1])!=etal[j]) {
            j++;
        };
        k = s.length() - i;
        num=j*pow((double)16, k) + num;
    };
    cout << "Её десятичное значение:" << num;
	cout << "  " ;
    return 0;
}

Последний раз редактировалось Аватар; 23.12.2015 в 19:15.
Korlet вне форума Ответить с цитированием
Старый 23.12.2015, 19:09   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Почему вылезает такая вот хрень перед ответом до слов "Её..."?
Потому что ВЫ ее выводите.
Код:
while (putchar(s[i-1])!=etal[j]) {
p51x вне форума Ответить с цитированием
Старый 23.12.2015, 19:22   #3
Korlet
Пользователь
 
Регистрация: 02.09.2015
Сообщений: 18
Вопрос

А переводит она неправильно... в чём проблема?

using namespace std;

Код:
#include <iostream>
#include <cmath>
#include <string>

int main()
{
int i,j,k;	
setlocale(0,""); // Включаем кириллицу
double num;
string str="";
cout << "Введите шестнадцатеричное число:" ;
getline(cin,str);
char etal[] = "0123456789abcdef";
num = 0;
for (i=str.length();i>0;i--) {
j=0;
while (char(str[i-1])!=etal[j]) {
j++;
};
k = str.length() - i;
num=j*pow((double)16, k) + num;
};
cout << "Её десятичное значение:" << num;	
cin >> i;
return 0;
}
Используй кнопку # для оформления кода
Модератор

Последний раз редактировалось Аватар; 23.12.2015 в 19:34.
Korlet вне форума Ответить с цитированием
Старый 23.12.2015, 20:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А функцией stoi() в которой указывается СС нужная как раз тебе воспользоваться не желаешь?
Вот, смотри: http://www.cplusplus.com/reference/string/stoi/
Тут отличный пример конвертации.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рекурсивный метод перевода числа из 2-ой СС в 10-ю. Pascal/Delphi AngryProj Помощь студентам 2 04.12.2014 17:26
перевода целого числа в римскую систему счисления enternity Помощь студентам 2 17.10.2011 01:37
Программа перевода числа из десятичного в двоичное. MiraJe Qt и кроссплатформенное программирование С/С++ 7 16.01.2011 14:11
Программа перевода числа из 10 СС в 2 СС fs444 Общие вопросы C/C++ 12 25.02.2010 08:10
Алгоритм перевода числа в hex text. Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 02.12.2008 21:36