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

Не получается вставить символ - C++

Восстановить пароль Регистрация
 
gosparh
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 14
19.02.2011, 10:09     Не получается вставить символ #1
здравствуйте. Программа у меня складывает 2 денежные суммы выраженные в фунтах, шиллингах и пенсах и выводит результат. Но перед вводимым и выводимым числом(результатом) должен стоять £, а между фунтом шиллингом и пенсом должна стоять точка. Результат должен быть такой:
Введите первую сумму: £5.10.6
Введите вторую сумму: £3.2.6
Всего: £8.13.0
А у меня получается что когда вводишь эти суммы пишешь не через точку а через пробел..(
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
//podschet deneg
#include <iostream>
using namespace std;
int main()
{
    char ch;
    int one1, one2, one3, two1, two2, two3, otv1, otv2, otv3;
    do
    {
        cout << "\nVvedite pervuyu summu: ВЈ"; cin>>one1>>one2>>one3;
        cout << "\nVvedite vtoruyu summu: ВЈ"; cin>>two1>>two2>>two3;
        otv1 = one3 + two3;
        otv2 = one2 + two2;
        if(otv1>11)
        {
            otv2 += 1;
            otv1 = (two3 + one3)-12;
        }
        otv3 = one1 + two1;
        if(otv2>20)
        {
            otv3 += 1;
            otv2 = (two2 + one2)-20;
        }
        cout << "\nVsego: ВЈ" << otv3 <<"."<< otv2 << "." << otv1;
        cout <<"\nProdolzhit? (y/n)";
        cin >> ch;
    }
    while(ch!='n');
    return 0;
}
Изучаю язык недавно поэтому многого не знаю..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 10:09     Не получается вставить символ
Посмотрите здесь:

В строке между словами вставить символ / C++
C++ Не получается удалить символ из строки
Вставить символ в файл C++
Вставить нулевой символ в строку C++
C++ Не получается вставить sizeof
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.02.2011, 10:16     Не получается вставить символ #2
C++
1
cin>>one1>>one2>>one3;
C++
1
2
3
    char pt;
    
    cin >> one1 >> pt >> one2 >> pt >> one3;
gosparh
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 14
19.02.2011, 10:21  [ТС]     Не получается вставить символ #3
спасибо! а как £ вставить?
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.02.2011, 12:43     Не получается вставить символ #4
нужно сделать широкий символ (wchar_t) и в него прочитать
такой символ может передаваться в виде нескольких байт, и если ты будешь его читать в char, он может просто туда не поместиться

C++
1
2
3
    char ph, pt;
    
    cin >> ph >> one1 >> pt >> one2 >> pt >> one3;
попробуй такую
gosparh
0 / 0 / 0
Регистрация: 22.01.2011
Сообщений: 14
19.02.2011, 14:03  [ТС]     Не получается вставить символ #5
я не очень понял как использовать wchar_t.. но попробовал unsigned char..не знаю может я че не так делаю, раньше символы никакие не вставлял..
в книге таблице ASCII этот символ под 156 номером, пробую его вставить вот так:
ph = 156; и дальше
cout << "\nVvedite pervuyu summu: " << ph; cin>>one1>>pt>>one2>>pt>>one3;
он отображает его как Ь почему то..) а если 156 взять в '156' то выдает 6..

Добавлено через 41 минуту
у меня судя по всему есть несоответствия с таблицей ASCII которая у меня есть..у меня в этом диапазоне чисел русский алфавит..
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
20.02.2011, 11:00     Не получается вставить символ #6
Цитата Сообщение от gosparh
я не очень понял как использовать wchar_t
если в C, там нужно установить локаль (ну, чтобы русские читать), настроить консоль на utf-8, да и читать специальными функциями
а у тебя C++, там может быть по-другому

вот на C
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
 
/* выводит символы unicode */
int main(void)
{
    setlocale(LC_ALL, "");
    putwchar(L'ВЈ');
    putwchar(L'\n');
    return 0;
}
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
 
/* выводит символы unicode */
int main(void)
{
    wchar_t wc;
    
    setlocale(LC_ALL, "");
    putwchar(L'ВЈ');
    putwchar(L'\n');
    wc = getwchar();
    putwchar(wc);
    putwchar(L'\n');
    return 0;
}
Код
[guest@localhost tests]$ ./t
£
[guest@localhost tests]$ .ansi t.c -o t
[guest@localhost tests]$ ./t
£
ᐍ
ᐍ
[guest@localhost tests]$
чтобы отобразить символы, нажми цитата
Yandex
Объявления
20.02.2011, 11:00     Не получается вставить символ
Ответ Создать тему
Опции темы

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