Форум программистов, компьютерный форум CyberForum.ru

Помогите с переменной. - C++

Восстановить пароль Регистрация
 
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
11.11.2011, 18:05     Помогите с переменной. #1
Здравствуйте!
У меня возникла проблема с выводом переменной на cmd.
Код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
using namespace std;
int main(){
    string cls = "cls";
    string q;
    string info = "help";
    string mbtokb = "mb_to_kb";
    double x;
    double y = x*1024;
    string kbtobt = "kb_to_bt";
    double x1;
    double y1 = x1 * 1024;
    string bttobit = "bt_to_bit";
    double x2;
    double y2 = x2 * 8;
    cout << "If you need a help, write 'help'." << endl;
    begin:
    cout << "Enter a operation: ";
    cin >> q;
    if (q == info ){
             cout << "   If you want translate megabyte to kilobyte, write 'mb_to_kb'." << endl;
             cout << "   If you want translate kilobyte to byte, write 'kb_to_bt'." << endl;
             cout << "   If you want translate bytes to bits, write 'bt_to_bit'." << endl;
             cout << "   If you want clear a display, write 'cls'" << endl;
             cout << "Enter a operation: ";
             cin >> q;
                if (q == mbtokb){
                   cout << "Input a weight in megabytes: ";
                   cin >> x;
                   cout << "Weight in kilobytes: " << y << endl;
                   }
                   if (q == kbtobt){
                         cout << "Input a weight in kilobytes: ";
                         cin >> x1;
                         cout << "Weight in bytes: " << y1 << endl;
                   }
                   if (q == bttobit){
                         cout << "Input a weight in bytes: ";
                         cin >> x2;
                         cout << "Weight in bits: " << y2 << endl;
                         }
                   if (q == cls){
                         system("cls");
                         }
             
             }
             else if (q == mbtokb){
                   cout << "Input a weight in megabytes: ";
                   cin >> x;
                   cout << "Weight in kilobytes: " << y << endl;
                   }
             else if (q == kbtobt){
                   cout << "Input a weight in kilobytes: ";
                   cin >> x1;
                   cout << "Weight in bytes: " << y1 << endl;
                   }
             else if(q == kbtobt){
                   cout << "Input a weight in kilobytes: ";
                   cin >> x1;
                   cout << "Weight in bytes: " << y1 << endl;
                   }
             else if (q == cls){
                  system("cls");
                   }
    goto begin;
    system ("pause");
    return 0;
}
Когда вводишь числа и они переводятся в другую [СИ], то выводятся какие-то непонятные числа.
Можете подсказать какую переменную нужно использовать ?Если можно, то поподробнее рассказать
об этой переменной, я новичек. Буду очень благодарен за внятный ответ!

P.S. Программа переводит из мегабайт в килобайты, из килобайт в байты и из байт в биты.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.11.2011, 18:28     Помогите с переменной. #2
Еще бы у вас непонятно что не выводилось. Вы сначала определяете double y = x*1024, а потом вводите x, нужно наоборот. Тоже самое с y1, y2
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
11.11.2011, 18:35  [ТС]     Помогите с переменной. #3
Thinker, если сначала вывести переменные: y,y1 и y2 то компилятор выдает ошибку...
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.11.2011, 18:38     Помогите с переменной. #4
Цитата Сообщение от ~enGiNe.O` Посмотреть сообщение
Thinker, если сначала вывести переменные: y,y1 и y2 то компилятор выдает ошибку...
Да не то все, смотрите, вы определили переменную double x; пока в ней мусор хранится и вы этот мусор умножаете на 1024.
надо же примерно так:
double x, y;
cin >> x;
y = 1024*x;
такая хронология событий
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
11.11.2011, 18:46  [ТС]     Помогите с переменной. #5
Thinker, спасибо, заработало. Но одна проблема. При умножении больше чем на 3 программа
не умножает, а пишет только максимальное число (3 тыс. с чем-то там, не помню точно). Может
тогда использовать тип переменных: long double ?

Нет, типом переменной: long double - не работает.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.11.2011, 18:53     Помогите с переменной. #6
Может у вас что-то напутано, но вот, например

C++
1
2
3
4
5
6
7
#include<iostream>
int main()
{
    double x = 500;
    std::cout << x*1024;
    return 0;
}
все нормально выводит. Тип double достаточно большой диапазон поддерживает
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
11.11.2011, 18:53  [ТС]     Помогите с переменной. #7
Сейчас проверю.
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 18:55     Помогите с переменной. #8
Да всё нормально там с типом, надо ошибки искать — сделай printscreen места, которое тебе не нравится.
*Отличный аватар.
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
11.11.2011, 18:59  [ТС]     Помогите с переменной. #9
Да, работает, спасибо больное,Thinker!

Добавлено через 47 секунд
Цитата Сообщение от Dar101 Посмотреть сообщение
*Отличный аватар.
Спасибо

Добавлено через 1 минуту
А, и еще вопросик(если не надоел ).
Как можно программно выйти из CMD ?
Dar101
 Аватар для Dar101
40 / 40 / 1
Регистрация: 12.05.2011
Сообщений: 109
11.11.2011, 19:01     Помогите с переменной. #10
return 0;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 19:05     Помогите с переменной.
Еще ссылки по теме:

Получить доступ к переменной класса при наличии такого же имени переменной в функции C++
Объявление переменной C++
C++ a,b и c.Присвоить максимальное из них переменной a,минимальное-переменной c,среднее переменной b

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

Или воспользуйтесь поиском по форуму:
~enGiNe.O`
 Аватар для ~enGiNe.O`
6 / 6 / 1
Регистрация: 06.08.2011
Сообщений: 45
11.11.2011, 19:05  [ТС]     Помогите с переменной. #11
Dar101, спасибо!
Yandex
Объявления
11.11.2011, 19:05     Помогите с переменной.
Ответ Создать тему
Опции темы

Текущее время: 08:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru