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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2012, 22:31   #1
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию Преобразование из ASCII

Код:
#include <stdio.h>
int CALCULATE(int, int, int);

int main()
{
    int c, i, g;
    int calc[3];
    for (i = 0; i<4; ++i) {
        calc[i] = 0;
    }
    g = 0;
    
    while((c = getchar()) != EOF)
    {
    
        if (c >= '0' && c <= '9') {
            calc[g] = c;
            g++;
        }
        else if(c == '-' || c == '+' || c == '*' || c == '/')
        {
            
            calc[1] = c;
            g++;
        }
        
        
        
    }
    printf("calc0 %d, calc1 %d, calc2 %d\n", calc[0], calc[1], calc[2]);
 CALCULATE(calc[0], calc[1], calc[2]);
}


int CALCULATE(int n1, int n2, int n3) {
    int b;
    switch (n2) {
        
        case '+':
            b = n1 + n3;
            break;
        case '-':
            b = n1 - n3;
            break;
        case '*':
            b = n1 * n3;
            break;
        case '/':
            b = n1 / n3;
            break;
    }
    return putchar(b), printf(" n1: %d, n3: %d", n1, n3);
    
}
Код, в общем то рабочий, но вот беда, при сложении 1+2 получается c
Собственно, потому, что 49+50 = 99 = С в ASCII формате.
И вот я не могу понять, как мне преобразовывать ASCII символы в прежнее состояние в функции CALCULATE перед вычислениями?
RussDragon вне форума Ответить с цитированием
Старый 25.10.2012, 22:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что--то я ниче не понял. Ты вводишь число как символ, а потом пытаешься символ как число в выражение подставить?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.10.2012, 23:19   #3
RussDragon
Форумчанин
 
Аватар для RussDragon
 
Регистрация: 07.04.2012
Сообщений: 216
По умолчанию

Мне нужно символ преобразовать в число.
UPD:
n1 -= '0';
n3 -= '0';
Проблема решилас добавлением двух строчек после 36 строки.

Последний раз редактировалось RussDragon; 26.10.2012 в 00:21.
RussDragon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция для преобразование символьной ASCIIZ-строки в ASCII-строкy dreamfactor Общие вопросы Delphi 2 21.10.2012 12:35
Преобразование текстового файла в ASCII код (NASM) wano13 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 01.04.2012 19:27
ascii в си++ Bonne Помощь студентам 0 09.04.2010 19:22
C++ ASCII #26 budulaj-ua Общие вопросы C/C++ 4 14.10.2009 16:54
ASCII Dimarik Общие вопросы C/C++ 27 28.08.2009 14:50